Возможно ли добавить ограничение на поле datetime в Postgressql с помощью Django?
Когда я пытаюсь добавить ограничение на поле closed_at
, я получаю ошибку миграции django.db.utils.ProgrammingError: functions in index predicate must be marked IMMUTABLE
. Можно ли это сделать?
from django.db.models.functions import Now
class ModelName():
# Other fields
closed_at = models.DateTimeField()
class Meta:
constraints = [
models.UniqueConstraint(
fields=['field_1'],
condition=Q(closed_at__gt=Now()),
name='unique_field_1_constraint',
),
]
Миграция:
class Migration(migrations.Migration):
dependencies = [
('_____', '__________'),
]
operations = [
migrations.AddConstraint(
model_name='model_name',
constraint=models.UniqueConstraint(condition=models.Q(
('closed_at__gt', django.db.models.functions.datetime.Now())
), fields=('field_1',), name='unique_field_1_constraint'),
),
]