在我的model
:
birth_date = models.DateField(verbose_name='D.O.B')
如何为此设置界限,例如:
01-01-1990 to (current date - 18 years)
我假设有一种方法可以在模型中设置它,所以它默认包含在表单中,但我之前从未在项目中使用过日期,所以我&# 39;我不确定这是怎么做的。
如果DateTimeField
和TimeField
不相同,了解如何执行此操作会很有用。
谢谢!
答案 0 :(得分:1)
DateTimeField
和TimeField
没有设置下限和上限的选项。但是,可以为任何类型的字段编写validators。
检查出生日期的验证员看起来像是:
from datetime import date
from django.core.exceptions import ValidatonError
def validate_dob(value):
"""Makes sure that date is been 1990-01-01 and 18 years ago."""
today = date.today()
eighteen_years_ago = today.replace(year=today.year - 18)
if not date(1990, 1, 1) <= value <= eighteen_years_ago:
raise ValidationError("Date must be between %s and %s" % (date(1990,1,1,), eighteen_years_ago)
然后在模型字段中使用验证器。
birth_date = models.DateField(verbose_name='D.O.B', validators=[validate_dob])