Django 表单的自定义表单验证器

2023-04-11 00:00:00 自定义 表单 验证

Django 表单的自定义表单验证器是指在表单提交前对表单数据进行自定义验证的过程。通过自定义验证器,我们可以对表单数据进行更精细化的验证,并保证表单提交的数据的可靠性。

以下是 Django 表单的自定义验证器的代码演示:

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

class MyForm(forms.Form):
    name = forms.CharField()
    email = forms.EmailField()
    message = forms.CharField(widget=forms.Textarea)

    def clean_message(self):
        message = self.cleaned_data.get('message')
        if 'pidancode.com' in message or '皮蛋编程' in message:
            raise ValidationError("不能出现敏感词汇")
        return message

在上面的代码中,我们自定义了 MyForm 表单,并定义了三个表单字段:nameemailmessage。在这些字段中,我们自定义了 message 字段的验证规则。

我们在 MyForm 类中定义了一个名为 clean_message 的方法,该方法用于对 message 字段进行验证。clean_message 方法的返回值是验证通过后的数据。

clean_message 方法中,我们首先从表单数据中获取 message 字段的值,然后判断该值是否包含了“pidancode.com”或“皮蛋编程”这两个敏感词汇。如果包含了敏感词汇,则抛出 ValidationError 异常,该异常的信息是“不能出现敏感词汇”,表示验证不通过。如果不包含敏感词汇,则返回 message 值,表示验证通过。

通过以上自定义表单验证器的代码演示,我们可以看出,在 Django 中定义表单的自定义验证器非常简单方便,只需要在表单类中定义名为 clean_字段名 的方法即可。在该方法中,我们可以编写各种自定义验证规则,对表单数据进行更加精细化的验证。

相关文章