Мне нужно выполнить сырой sql на нескольких таблицах.Затем я отображаю набор результатов.Для одной таблицы я бы сделал:
sql = "select * from my_table"
results = my_table.objects.raw(sql)
Для нескольких таблиц я делаю:
sql = "select * from my_table, my_other_table where ...."
results = big_model.objects.raw(sql)
Но действительно ли мне нужно создать таблицу / модель / класс big_model, который содержитвсе поля, которые мне могут понадобиться?Я никогда не буду хранить данные в этой «таблице».
ДОБАВЛЕНО:
У меня есть таблица my_users.У меня есть таблица my_listings.Они определены в Models.py.Таблица my_listings имеет внешний ключ к my_users, указывающий, кто создал листинг.
SQL это
"select user_name, listing_text from my_listings, my_users where my_users.id = my_listings.my_user_id".
Я хочу, чтобы этот SQL генерировал набор результатов, который я могу использовать для рендеринга моей страницы в django.
Вопрос в том, нужно ли создавать модель, содержащую поля user_name и перечисление_text?Или есть какой-то лучший способ, который все еще использует сырой SQL (выберите, откуда, где)?Конечно, мои реальные запросы сложнее, чем этот пример.(Модели, которые я определяю в models.py, становятся фактическими таблицами в базе данных, поэтому используется термин модель / таблица. Не знаю, как еще ссылаться на них, извините.) Я использую raw sql, потому что обнаружил, что ссылки на таблицы pythonработа с простыми моделями данных.