我需要编写一个脚本来验证结束日期是否大于开始日期。而且开始日期/结束日期不能早于当前日期。需要用Django 1.8编写。
答案 0 :(得分:0)
为此,您可以覆盖Model.clean(..)
method [Django-doc]。如果您使用ModelForm
[Django-doc],那么它将自动在模型实例上调用,以检查约束是否得到满足。
.clean()
从django-2.2开始,您可以在from django.db import models
from django.utils import timezone
class MyModel(models.Model):
start = models.DateTimeField()
end = models.DateTimeField()
def clean(self):
super().clean()
if not (timezone.now() <= self.start <= self.end):
raise ValidationError('Invalid start and end datetime')
中使用constraints
[Django-doc]:
Meta
鉴于数据库系统对此提供了支持,约束也将在数据库级别强制实施。