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