如何避免 form.is_valid() 在 Django 中将空字段标记为错误?

Dun*_*ski 1 python django django-templates django-forms

我有一个用于更新表格的模板。但是,用户可以选择更新一个字段或所有字段。很有可能他不会更新所有字段,所以我希望能够运行form.is_valid(),但是如果表单中几乎肯定会有空字段,我不想让它返回 false。

我不想required=False在表单中使用,因为还有另一个模板使用相同的表单,用户必须填写几乎所有的字段。

Pet*_*per 5

最简单的做法可能是将表单子类化并required=False在子类中设置,要么重复字段定义,要么在__init__. 否则,您可以required=False在视图中进行设置,例如:

def some_view(request):
    if request.METHOD == 'POST':
        form = SomeFormClass(request.POST)
        form.fields['fieldname'].required = False
        if form.is_valid():
            # etc
Run Code Online (Sandbox Code Playgroud)