Я создаю приложение с Django, опираясь на несколько баз данных Posgre SQL, которыми я не управляю, назовем их базой данных A и базой данных B . Для каждой базы данных я использовал python manage.py inspectdb
для создания моих models.py
файлов.
Я пытаюсь использовать Django ORM для выполнения следующего запроса ( значительно упрощен здесь ) , to_date
являющийся datetime.datetime
объектом:
sample = my_model_in_B.objects\
.filter(a_column=instance_of_a_model_in_A.name)\
.exclude(another_column='Useless things')\
.filter(a_column_with_dates__lte=to_date)
Моя проблема заключается в том, что он создает следующий запрос SQL:
SELECT "myschema"."mytable"."a_column", "myschema"."mytable"."another_column" from "myschema"."mytable"
WHERE "myschema"."mytable"."a_column" = Here is the name of instance_of_a_model_in_A
AND "myschema"."mytable"."a_column_with_dates" <= 2020-02-03
AND NOT ("myschema"."mytable"."another_column" = Useless things
AND "myschema"."mytable"."another_column" IS NOT NULL))
Другими словами, моя проблема заключается в том, что ORM Django автоматически не добавляет кавычки там, где они мне нужны . Я не понимаю, что я сделал не так. Я не знаю, имеет ли это значение, но учтите, что:
- Я использую Django 2.2. и моя база данных B только POSTGRESQL 8,
- Все столбцы, которые я использую, соответствуют
CharField
в моих моделях, кроме a_column_with_dates , что соответствует DateField
.
Любая помощь приветствуется. Заранее спасибо.