Django形式错误

khe*_*lll 6 forms django

class JobForm(forms.ModelForm):
    class Meta:
        model = models.Job
Run Code Online (Sandbox Code Playgroud)

这是我的表单,现在尝试保存它会引发异常,并尝试验证它失败没有错误....

job = get_object_or_404(models.Job, pk=1)
form = forms.JobForm(instance = job)
try:
    form.save()
except:
    print sys.exc_info()

#=>(<type 'exceptions.AttributeError'>, AttributeError("'JobForm' object has no attribute 'cleaned_data'",), <traceback object at 0x1029dbb48>)
Run Code Online (Sandbox Code Playgroud)

试图验证它:

if form.is_valid():
    form.save()
else:
    print 'error'
    print form.errors, len(form.errors)
#=> 'error' 
#=> 0
Run Code Online (Sandbox Code Playgroud)

所以表单无效,但没有错误!任何的想法?

Fel*_*ing 19

你的表格绝对不受约束.阅读有关绑定和未绑定的表单.

从该文件:

要将数据绑定到表单,请将数据作为字典作为第一个参数传递给Form类构造函数.

这意味着模型中字段的更改也不会使表单绑定.您必须通过构造函数显式传递这些值.但:

请注意,传递空字典会创建带有空数据的绑定表单

并考虑这一点

如果您有一个绑定的Form实例,并希望以某种方式更改数据,或者如果要将未绑定的Form实例绑定到某些数据,请创建另一个Form实例.无法更改Form实例中的数据.一旦创建了Form实例,您应该认为它的数据是不可变的,无论它是否有数据.

如果您验证未绑定的表单:

验证没有数据的表单是没有意义的,但是,对于记录,这是未绑定表单的情况:

>>> f = ContactForm()
>>> f.is_valid()
False
>>> f.errors
{}