Мне нужно получить необработанные объекты с помощью функций Django .objects.raw, например:
SELECT * FROM TEST_APP_DOCUMENT WHERE DATE BETWEEN to_date('0000-02-07','YYYY-MM-DD') AND to_date('2027-02-15', 'YYYY-MM-DD')
в pgAdmin select return хороший результат, но когда я помещаю его в django, возникает ошибка:
File "C:\Users\User\Desktop\test_task\test_app\views.py", line 110
queryset = Document.objects.raw('SELECT * FROM TEST_APP_DOCUMENT WHERE DATE BETWEEN to_date('0000 - 02 - 07','YYYY - MM - DD') AND to_date('2027 - 02 - 15', 'YYYY - MM - DD')')
^
SyntaxError: invalid syntax
в чем проблема синтаксиса?
Вы передаете строковый литерал с одинарными скобками ('
), имея их внутри самой строки. Вы должны избежать их или использовать "
:
queryset = Document.objects.raw("SELECT * FROM TEST_APP_DOCUMENT WHERE DATE BETWEEN to_date('0000 - 02 - 07','YYYY - MM - DD') AND to_date('2027 - 02 - 15', 'YYYY - MM - DD')")
Вы можете убежать с помощью обратной косой черты, как и следовало ожидать. Например, 'foo\'bar'
даст foo'bar
.
Удачи с ошибкой?