📜  error_messages – Django 内置字段验证(1)

📅  最后修改于: 2023-12-03 14:41:00.508000             🧑  作者: Mango

error_messages – Django 内置字段验证

在 Django 中,表单字段可以使用许多验证器来确保输入数据有效。 通过使用这些验证器,可以轻松地检查表单数据,并根据需要强制执行任何限制和规则。 这种类型的验证可以确保数据在传递到数据库之前符合特定的标准,超出这些限制的任何数据都将被拒绝。

在本文中,我们将探讨 Django 内置的验证功能中的 error_messages 呈现方式,并将其与其他错误呈现方式进行比较。

error_messages 的使用

error_messages 是一个字段选项,它允许自定义 Django 中的验证器错误消息。 通过使用 error_messages,可以确保错误消息适合特定的用例,提高了数据传输的可读性,这在构建 Web 应用程序时非常有用。

以下是一个简单的示例表单类:

from django import forms

class ContactForm(forms.Form):
    subject = forms.CharField(max_length=100, error_messages={
        'required': 'This field is required.',
        'max_length': 'This field cannot exceed 100 characters.'
    })
    message = forms.CharField(widget=forms.Textarea, error_messages={
        'required': 'This field is required.'
    })
    sender = forms.EmailField(error_messages={
        'required': 'This field is required.',
        'invalid': 'Please enter a valid email address.'
    })
    cc_myself = forms.BooleanField(required=False)

上面的表单会为“subject”和“message”字段使用不同的错误消息,并为“sender”字段同时使用 required 和 invalid 错误消息。

当表单验证失败时,Django 会返回错误字典。 我们可以在这个字典中使用这些自定义的错误消息。

error_messages vs. 过滤器

error_messages 允许您定义每个字段的错误消息,但 Django 还提供了另一种错误呈现方式:过滤器。过滤器在验证器之前执行,因此可以处理输入数据。如果输入数据不包含所需的字符集,则可以在尝试验证之前删除或修复它们。

error_messages vs. clean 方法

在 Django 的 Form 中,您还可以重载 clean() 方法。 Django 使用 clean() 方法来验证表单并检查字段之间的依赖关系。 虽然有时确实需要使用没有 error_messages 的 clean() 方法,但在许多情况下,使用 error_messages 是更好的选择,因为它在代码中更直观,并且可以使验证具有更好的可读性。

总结

在 Django 中,使用 error_messages 可以很容易地定义自己的错误消息,从而大大提高了数据传输的可读性。 与其他 Django 错误呈现方式相比,使用 error_messages 的代码更清晰,更具可读性,易于维护。