django一次清理多个字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django一次清理多个字段相关的知识,希望对你有一定的参考价值。

我有一个包含开始日期和结束日期的表单。如何清理表单,以便结束日期在开始日期之后。我可以清理一个字段,但不确定如何在将字段与另一个字段进行比较时清理字段。此外,当这出错时,我希望能够在{{ form.end_date.errors }}中进行错误渲染,而不是一般部分。有没有办法用forms.ValidationError做到这一点

class ContractChangeForm(forms.ModelForm):
    ...
    def clean(self):
        start_date = self.cleaned_data['start_date']
        end_date = self.cleaned_data['end_date']

        if end_date < start_date:
            raise forms.ValidationError(u'Error: The ending date must come after the starting date.',code='invalid_date')
        return end_date
答案

您可以使用add_error()方法将错误附加到特定字段:

if end_date < start_date:
   self.add_error('field_name','Error text message....')
另一答案

你可以通过传递dict

raise forms.ValidationError({'end_date': u'Error: The ending date must come after the starting date.'})

以上是关于django一次清理多个字段的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 的视图中清理多个嵌套的 if 语句

在 Django 中清理表单数据

如何在 django 中使用模型清理方法并遍历字段

Django REST框架--认证和权限

如何使用django自定义表单保存多个到多个字段

django - 如何清理 url 传递的变量数据?