Django的form(和model)验证器

Django的form(和model)字段支持使用简单的实用函数和可调用的类作为一个验证器。

验证器是一个带值的可调用对象或函数,如果该值有效,则不返回任何内容,否则返回ValidationError 。

这些可以通过字段的validators参数传递给字段的构造函数,Field也可以使用default_validators属性在类本身上定义。

简单的验证器可用于验证字段中的值,例如:

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

def validate_recharge(value):
    min_value = 5000
    if value < min_value:
        raise ValidationError('油卡充值金额必须大于%s' % min_value)
    now = datetime.datetime.now()
    if now.hour > 22 or now.hour < 2:
        raise ValidationError('中石化系统正在结算,暂时无法充值')
        
class Test_Form(forms.Form):
    recharge = forms.FloatField(validators=[validate_recharge])  # 通过字段的validators参数传递给字段FloatField的构造函数
    
    
from django.db import models

class MyModel(models.Model):
    recharge = models.IntegerField(validators=[validate_recharge])    

 

posted @ 2020-04-21 14:29  小哥豪  阅读(421)  评论(0编辑  收藏  举报