Django ORM необработанный запрос, как управлять котировками - PullRequest
0 голосов
/ 12 марта 2020

В моем проекте Django мне нужно реализовать сложный запрос RAW для извлечения данных, для этого я использую функцию django. Исходный запрос:

SELECT FT."Riferimento1", FT."Riferimento2", "CodProdotto", "QuantitaFatturata", "PrezzoUnit", "DataFattura", "NumeroFattura", "CodCli"
FROM public.idocuments_as_fatturetestata FT
LEFT JOIN public.idocuments_as_fatturerighe FR ON FT."Riferimento1" = FR."Riferimento1" AND FT."Riferimento2" = FR."Riferimento2"
WHERE FT."CodCli" = '12192';

если я запускаю напрямую в pgadmin SQL все было сделано

В django я реализую таким образом:

>>> from idocuments.models import as_fatturetestata as asf
>>> a = asf.objects.raw("SELECT FT."Riferimento1",FT."Riferimento2","CodProdotto","QuantitaFatturata","PrezzoUnit","DataFattura","NumeroFattura","CodCli" FROM public.idocuments_as_fatturetestata FT LEFT JOIN public.idocuments_as_fatturerighe FR ON FT."Riferimento1" = FR."Riferimento1" AND FT."Riferimento2" = FR."Riferimento2" WHERE FT."CodCli" = '12192'")

но я получаю:

SyntaxError: неверный синтаксис

возможно, проблема в том, как управлять кавычками, но я не понимаю, как перенести запрос sql в raw директива.

Кто-нибудь может мне помочь, пожалуйста?

Огромное спасибо заранее

1 Ответ

1 голос
/ 12 марта 2020

Попробуйте использовать одинарные кавычки и экранировать одинарные кавычки в строке с помощью \:

a = asf.objects.raw('"SELECT FT."Riferimento1",FT."Riferimento2","CodProdotto","QuantitaFatturata","PrezzoUnit","DataFattura","NumeroFattura","CodCli" FROM public.idocuments_as_fatturetestata FT LEFT JOIN public.idocuments_as_fatturerighe FR ON FT."Riferimento1" = FR."Riferimento1" AND FT."Riferimento2" = FR."Riferimento2" WHERE FT."CodCli" = \'12192\'"')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...