Возврат модели из пользовательского запроса без попадания в базу данных - PullRequest
1 голос
/ 06 сентября 2010

У меня есть пользовательский запрос, который в конечном итоге возвращает список объектов. Мне нужна функция для возврата реальных объектов, но я не хочу дважды обращаться к базе данных для каждого запроса, поскольку это уже дорогой запрос. Как я могу вернуть экземпляр модели, не нажимая на БД?

NB. Полагаю, что выполнение следующих действий приведет к созданию нового экземпляра другой модели?

return [Object(pk=row[0]) for row in results]

Примечание: я также предполагаю, что это попадет в базу данных при возврате функции

return [Object.objects.get(pk=row[0]) for row in results]

1 Ответ

2 голосов
/ 06 сентября 2010

Если у вас Django 1.2+, вы можете использовать метод raw(), чтобы вернуть список Model экземпляров, используя результаты пользовательского запроса.Примерно так в вашем случае:

query = "<your query goes here>"
Object.objects.raw(query)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...