子类化时db.models.Model
,有时有必要添加额外的检查/约束。
例如,我有一个Event
模型与start_date
and end_date
:我想将验证添加到字段或模型中,以便end_date > start_date
.
至少我知道这可以在外部完成models.Model
在 - 的里面ModelForm
验证。但是如何附加到字段和models.Model
?
从 Django 2.2 开始,数据库级别constraints https://docs.djangoproject.com/en/4.0/ref/models/constraints/#module-django.db.models.constraints支持:
from django.db import models
from django.db.models import CheckConstraint, Q, F
class Event(models.Model):
start_date = models.DatetimeField()
end_date = models.DatetimeField()
class Meta:
constraints = [
CheckConstraint(
check = Q(end_date__gt=F('start_date')),
name = 'check_start_date',
),
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)