Django表单中的自定义字段验证

Django表单中的自定义字段验证

这篇文章围绕着如何为一个特定的字段添加自定义验证。例如,通过指定一个特定的格式为CharField添加电子邮件验证。如何实现自定义验证,可以有多种方法。在这篇文章中,我们将从表单本身来展示它,这样你就不需要在其他地方操作它。

什么是验证人

一个验证器是一个可调用的,它接收一个值,如果不符合标准就会引发ValidationError。验证器对于在不同类型的字段之间重复使用验证逻辑非常有用。

Django表格的自定义字段验证解释

用一个例子来说明验证器的情况。考虑一个名为geeksforgeeks的项目,有一个名为geeks的应用程序。

要在你的表单字段中使用内置的验证器,在forms.py中像这样导入验证器。

from django import forms
from django.core import validators
  
class StuForm(forms.Form):
  name = forms.CharField(
    validators =[validators.MaxLengthValidator(10)])
Python

从验证器中调用内置的MaxLengthValidators,如果值的长度大于limit_value,则会引发验证错误。

如何在django中创建我们的自定义验证器?

所以我们要创建我们自己的自定义验证器。

例子1 :-

我们将创建一个验证器,如果名字不是以s开头,它将引发一个错误。

forms.py

from django import forms
  
def start_with_s(value):
  if value[0]!='s':
    raise forms.ValidationError("Name should start with s")
  
  
class StuForm(forms.Form):
  name = forms.CharField(
    validators =[start_with_s])
Python

在验证器中传递函数。

我们写一个逻辑,如果一个名字不是以’s’开头,就会引发一个错误,并被包在函数中。

例子2 :-

我们将为一个手机号码字段创建一个验证器

from django import forms
  
def mobile_no(value):
  mobile = str(value)
  if len(mobile) != 10:
    raise forms.ValidationError("Mobile Number Should 10 digit")
  
  
class StuForm(forms.Form):
  mob = forms.IntegerField(
    validators =[mobile_no])
Python

我们写了一个手机号码验证器的逻辑,它引发了一个错误并被包在函数中

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册