我真的很困惑为什么这个form.is_valid()返回False:
这是我创建的django模型:
class aModel(models.Model):
some_id = models.IntegerField()
我将Model
转换为ModelForm
,并使用ModelForm
的实例创建Model
个实例。这个ModelForm
实例不应该有效吗?
>>> class aModelForm(forms.ModelForm):
... class Meta:
... model = aModel
...
>>> am = aModel.objects.get(id=1)
>>> for k,v in am.__dict__.items(): print k,v
...
_state <django.db.models.base.ModelState object at 0x1020c8a50>
id 1
some_id 5
>>> form = aModelForm(instance=am)
>>> form.is_valid()
False
>>> am.save()
>>> am.some_id = 6
>>> am.save()
>>>
为什么表格无效?我需要做些什么才能使表格有效?
答案 0 :(得分:1)
看起来这个表单没有绑定到数据,因此无法验证。您可以在form.is_bound()
之前打印form.is_valid()
进行验证。
如果没有约束,我认为你不能验证。要绑定数据,您需要将数据添加为表单的第一个参数的字典。
form = aModelForm({'some_id': am.some_id}, instance=am)
form.is_valid()
有关详细信息,请参阅Django - Forms API。