【发布时间】:2011-09-05 00:00:12
【问题描述】:
我在 Google App Engine 中有一个带有 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 中的数据初始化时,选择还不存在,我收到一条错误消息,指出做出了无效的选择(因为该值尚未存在于选项列表中)。
我不喜欢在初始化表单时进行验证,而不是等到我调用 form.is_valid()。有没有办法在我的对象实例化过程中抑制验证?或者其他方法来解决这个问题?
更新:我很确定 ModelFormMetaclass 通过在创建表单时验证提供的实例而让我很伤心。仍然不确定如何解决。
谢谢!
【问题讨论】:
标签: django google-app-engine django-forms