重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
這篇文章將為大家詳細講解有關(guān)深入淺析Django模型驗證器,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
前言
在Django的模型字段參數(shù)中,有一個參數(shù)叫做validators,這個參數(shù)是用來指定當前字段需要使用的驗證器,也就是對字段數(shù)據(jù)的合法性進行驗證,比如大小、類型等。
Django的驗證器可以分為模型相關(guān)的驗證器和表單相關(guān)的驗證器,它們基本類似,但在使用上有區(qū)別。
本文討論的是模型相關(guān)的驗證器。
一、自定義驗證器
一個驗證器其實就是一個可調(diào)用的對象(函數(shù)或類),接收一個初始輸入值作為參數(shù),對這個值進行一系列邏輯判斷,如果不滿足某些規(guī)則或者條件,則表示驗證不通過,拋出一個ValidationError異常。如果滿足條件則通過驗證,不返回任何內(nèi)容(也就是默認的return None),可以繼續(xù)下一步。
驗證器具有重要作用,可以被重用在別的字段上,是工具類型的邏輯封裝。
下面是一個驗證器的例子,它只允許偶數(shù)通過驗證:
from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ def validate_even(value): if value % 2 != 0: raise ValidationError( _('%(value)s is not an even number'), params={'value': value}, )