Ограничение исключения Django Postgres с помощью ManyToManyField

#python #django #postgresql #exclusion-constraint

Вопрос:

Я хотел бы использовать ограничение исключения Django с ManyToManyField. К сожалению, до сих пор мои усилия были тщетны. Это моя модель назначения:

из django.contrib.postgres.ограничения импортируйте ограничение исключения из django.contrib.postgres.поля импортируют поле DateTimeRangeField, операторы диапазона

 class Appointment:
    patients = models.ManyToManyField(Patient, related_name='appointments' , blank=True )     
    datetimerange = DateTimeRangeField(null=False, blank = False )
    doctor = models.ForeignKey(Doctor, related_name='doctor_appointments') 

    class Meta: 
        constraints = [ 
            ExclusionConstraint(
                name='unique_doctor',
                expressions=[
                    ('datetimerange', RangeOperators.OVERLAPS),
                    ('doctor ', RangeOperators.EQUAL),

                ], 
            ), 
            ExclusionConstraint(
                name='unique_patients',
                expressions=[
                    ('datetimerange', RangeOperators.OVERLAPS),
                    ('patients', RangeOperators.CONTAINED_BY)
                
                ],
                condition= Q(is_archived=False) amp; Q(is_cancelled=False)                
        ) 
        ]
 

К сожалению, это не работает. Первое ограничение, которое ссылается на Врача, работает отлично, но второе дает мне эту ошибку во время миграции:

 return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedColumn: column "patient_id" named in key does not exist

    return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: column "patient_id" named in key does not exist
 

Это мучает меня уже довольно давно. Любая помощь будет признательна.