📜  validationerror django 参数 - Python (1)

📅  最后修改于: 2023-12-03 15:20:56.480000             🧑  作者: Mango

ValidationError Django 参数

在 Django 中,当表单验证失败时,会抛出 ValidationError 异常。这种异常是非常常见的,所以需要了解它的用法和参数。

ValidationError 可以在任何 Django 视图中使用,包括表单视图、通用视图、验证器等等。它接受一个参数,这个参数是一个包含错误信息的字典,其中键是表单字段的名称,值是对应字段的错误信息。

用法示例

下面是一个常见的用法示例:

from django import forms
from django.core.exceptions import ValidationError

class ContactForm(forms.Form):
    name = forms.CharField(required=True)
    email = forms.EmailField(required=True)
    message = forms.CharField(widget=forms.Textarea, required=True)

    def clean(self):
        cleaned_data = super(ContactForm, self).clean()
        name = cleaned_data.get("name")
        email = cleaned_data.get("email")
        message = cleaned_data.get("message")

        if not name and not email and not message:
            raise ValidationError(
                "You must enter either your name or your email address."
            )

        return cleaned_data

在这个示例中,我们定义了一个表单类 ContactForm,它有三个字段:nameemailmessage。在 clean 方法中,我们检查这三个字段是否都为空,如果是,就会抛出一个 ValidationError 异常。

参数示例

还有一些其他的参数可以传递给 ValidationError,它们允许您自定义错误消息的显示方式。

code

错误代码,用于识别错误。通常用于本地化错误消息。例如:

raise ValidationError(
    "This value is not valid.",
    code="invalid",
)
params

错误消息中替换变量的值。例如:

raise ValidationError(
    "The %(value)s is not valid.",
    code="invalid",
    params={"value": "input"},
)
message

指定自定义错误消息。例如:

raise ValidationError(
    "You must enter either your name or your email address.",
    code="invalid",
    params={"value": "input"},
    message="Please enter your name or email.",
)
总结

ValidationError 是 Django 中非常重要的异常,它允许您在表单验证期间抛出错误。本文介绍了该异常的用法和参数,可以帮助您编写更好的表单视图和通用视图。