Django CheckConstraints для проверки start_date больше или равно today
from django.db.models.functions import Now, TruncDay
class Foo(models.Model):
start_date = models.DateTimeField()
end_date = models.DateTimeField()
class Meta:
constraints = [
name="start_date must be greater than or equal today",
check=CheckConstraints(start_date__gte=TruncDay(Now()))
]
в коде выше, я хочу добавить CheckConstraint, чтобы проверить, является ли дата начала_даты больше или равна сегодня.
но, после makemigration и migrate, произошла ошибка.
functions or expression 'CURRENT_TIME' cannot be userd in check clause
Как проверить дату начала_даты с сегодняшним днем?
Я думаю, что ошибка вернулась из-за CheckConstraint
.
Ваш импорт: from django.db import models
, поэтому вы должны использовать models.CheckConstraint()
from django.db import models
from django.db.models.functions import Now
from django.db.models import Q
class Foo(models.Model):
start_date = models.DateTimeField()
end_date = models.DateTimeField()
class Meta:
constraints = [
models.CheckConstraint(
check=Q(start_date__gte=Now()),
name = "start_date must be greater than or equal today"
)
]
Это объясняется в документации, смотрите constraint reference для получения дополнительной информации