【发布时间】:2022-08-14 15:31:31
【问题描述】:
模型.py:
class Event(models.Model):
start = models.DateTimeField(default=timezone.now)
end = models.DateTimeField()
如何设置 end_date 的硬限制?
所以如果用户想要设置任何东西5个小时从一开始系统不会让他这样做。
标签: python django django-models
模型.py:
class Event(models.Model):
start = models.DateTimeField(default=timezone.now)
end = models.DateTimeField()
如何设置 end_date 的硬限制?
所以如果用户想要设置任何东西5个小时从一开始系统不会让他这样做。
标签: python django django-models
您可以使用constraints 在数据库级别执行此操作
from datetime import timedelta
from django.db import models
from django.db.models import CheckConstraint, Q, F
class Event(models.Model):
start = models.DateTimeField(default=timezone.now)
end = models.DatetimeField()
class Meta:
constraints = [
CheckConstraint(
check=Q(end__lte=F('start') + timedelta(hours=5)),
name='check_end_datetime',
),
]
运行 manage.py makemigrations 和 manage.py migrate 来更改数据库。
【讨论】: