Django:如果我将一个实例传递给一个表单,然后调用is_valid(),是否验证了实例字段?

时间:2012-02-05 21:04:16

标签: django django-forms

可能是一个简单的问题,但如果我有一个ModelForm:

class ExampleModelForm(forms.ModelForm):
    class Meta:
        exclude = ['username']

当我使用表单时,我想注入一个我从其他地方获得的用户名,但仍希望它通过验证过程。如果我使用:

instance = ExampleModel(username='Foobar')
form = ExampleModelForm(request.POST, instance=instance)

if form.is_valid():
    form.save()

用户名'Foobar'是否与表单中的其他字段进行相同的验证?

谢谢,

Ĵ

1 个答案:

答案 0 :(得分:2)

不,如果表单已被排除,表单甚至不包含用户名字段。

如果要通过表单对字段执行验证,则应修改POST字典。

post = request.POST.copy()
post['username'] = 'Foobar'

form = ExampleForm(post)