在Django表单中验证表单后更改字段的值

时间:2012-10-04 15:57:24

标签: django-forms

在Django Form POST方法中,我想根据is_valid()结果更改字段值。因此,我无法更改clean_*方法中的值,因为is_valid()不会被计算(也无法访问)。

基本上我需要根据is_cool结果中的值(is_valid()中的值)更改HTML的显示方式。如果需要,则需要由UI更改此值。在模板中我有类似的东西:

{% if record.is_cool %} something {% endif %}

这是可能的还是我应该改变模式?

1 个答案:

答案 0 :(得分:0)

UI必须正确更新字段值,就像现在一样。

Django中的View可以传递条件is_cool而不影响表单,并通过传递给render函数的dict将其传递给模板。

查看代码段:

return render(request, self.template_name, {
    'record': form,
    'is_cool': True,
})

模板代码将改为:

{% if is_cool %} something {% endif %}

请注意,模板is_coolrecord.is_cool中的变量不同。