Неправильный SQL генерируется при запросе массива поля Datetime в Django

У меня есть модель, в которой я храню дату в поле Array. Теперь, когда я использую это поле Array в выражении F, это дает мне ошибку SQL. При печати SQL я вижу, что генерируется неправильный SQL.

Вот пример структуры MOdel :

class MyModel(models.Model):
       valid_date = models.DateTimeField(default=timezone.now)
       exclude_dates = ArrayField(
                models.DateTimeField(_("Exclude dates"), null=True, blank=True),
                null=True, blank=True
            )

Теперь, когда я запрошу эту модель, чтобы она выдала мне все записи, но игнорировала те даты, которые находятся в списке exclude_dates.

qs = MyModel.objects.exclude(valid_date__range=F('exclude_dates'))

Этот вышеприведенный ORM поднимет psycopg2.errors.SyntaxError. если вы проверите результирующий SQL по print(qs.query). Вы обнаружите, что каким-то образом генерируется неправильный SQL.

Я пытаюсь выяснить причину этого и не могу придумать альтернативное решение.

SQL : SELECT "mymodel"."id" FROM "mymodel" WHERE "mymodel"."valid_date" BETWEEN " AND v

Django : Django==3.1.2

Вернуться на верх