Неправильный 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