Ограничение Django на производные поля
Я пытаюсь добавить непересекающееся ограничение на специфическое для Postgres поле DateRange:
from django.contrib.postgres.constraints import ExclusionConstraint
from django.contrib.postgres.fields import DateRangeField, RangeOperators
class MyModel(models.Model):
    timespan = DateRangeField(blank=False, null=False)
    status = models.CharField(max_length=8, choices=status_choices, blank=False, null=False)
    class Meta:
        constraints = [
            ExclusionConstraint(
                name='exclude_overlapping_offer', 
                expressions=[
                    ('timespan', RangeOperators.OVERLAPS),
                    (models.Q(status='ACCEPTED'), RangeOperators.EQUAL),
                ],
            )
В основном я хочу предотвратить появление в базе данных перекрывающихся записей, имеющих статус ACCEPTED.
Миграция проходит нормально, но когда я пытаюсь сохранить модель, то получаю ошибку:
AttributeError: 'Q' object has no attribute 'replace_expressions'
Есть ответ на сообщение об ошибке, в котором говорится, что объекты Q не допускаются в выражениях ограничений:
https://code.djangoproject.com/ticket/34805
Есть ли другой способ установить ограничение на производное поле?
Ответ кроется здесь:
https://docs.djangoproject.com/en/5.1/ref/contrib/postgres/constraints/
условие
ExclusionConstraint.condition Объект Q, задающий условие для ограничения ограничения подмножеством строк. Например, condition=Q(cancelled=False). Эти условия имеют те же ограничения базы данных, что и django.db.models.Index.condition
.
 Используйте condition, чтобы указать значение, не относящееся к диапазону, для фильтрации строк, к которым вы хотите применить ограничения диапазона.