Django RawQuerySet

Я пытаюсь сделать RawQuerySet в моей модели django, но он не возвращает никаких данных. Я делаю этот запрос непосредственно к базе данных и он работает хорошо, но в django RawQuerySet ничего не возвращается.

Вы можете мне помочь?

data_in = "'2022-05-15'"
data_out = "'2022-08-20'"
id_estudo = 1

query = f'''SELECT ag.id, dia, first_name, last_name, descricao, modelo, serialNumber, acronimo 
        FROM model_1 ag,model_2 ma, model_3 user, model_4 es
        ON ag.model_2_id = ma.id AND ag.model_3_id = user.id AND ag.model_4_id = es.id 
        WHERE dia BETWEEN {data_in} and {data_out} AND es.id = {ester_id};
        '''


return Model.objects.raw(query)

Никогда не используйте формат f string для выполнения rawquery, он уязвим для sql-инъекций

сделайте это,

>>> lname = 'Doe'
>>> Person.objects.raw('SELECT * FROM myapp_person WHERE last_name = %s', [lname])

Также если вам нужно отображение на имя колонки,

>>> name_map = {'first': 'first_name', 'last': 'last_name', 'bd': 'birth_date', 'pk': 'id'}
>>> Person.objects.raw('SELECT * FROM some_other_table', translations=name_map)

Django Documentation - https://docs.djangoproject.com/en/3.2/topics/db/sql/

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