1
我有一個Django的ModelForm在谷歌應用程序引擎與ChoiceField,假設位置:無法驗證動態選擇使用Django的ModelForm
class MyForm(ModelForm):
location = ChoiceField(label="Location")
class Meta:
model = MyModel
爲了動態添加選擇的位置,而不是與應用的問題緩存,我將它們添加表格已初始化後:
form = MyForm(request.POST, instance=my_instance)
form.fields['location'].choices = Location.all().fetch(1000)
我現在遇到的問題是,當形式是通過在request.POST的數據初始化的選擇還不存在,我收到了一條錯誤,指出無效的選擇(自價值e在選擇列表中還不存在)。
我不喜歡在初始化表單時發生驗證,而不是等到我調用form.is_valid()。有沒有辦法在我的對象實例化過程中抑制驗證?或者以其他方式解決這個問題?
更新:我很確定ModelFormMetaclass通過在創建表單時驗證提供的實例而使我感到悲傷。仍然不知道如何解決。
謝謝!
嘿亞當,我試圖在__init__中添加選項但沒有成功,但是我沒有嘗試在那裏聲明字段。它似乎工作,儘管如此感謝您的建議! – 2011-05-31 15:22:29