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])