从自定义查询返回模型而不访问数据库

时间:2010-09-06 10:22:05

标签: sql django django-models model

我有一个自定义查询,最终返回一个对象列表。我需要函数来返回实际的对象,但我不想为每个查询打两次数据库,因为它已经是一个昂贵的查询。如何在不敲击db的情况下返回模型实例?

注意:我认为做类似以下的事情实际上会创建一个不同模型的新实例?

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

注意:我还假设这会在函数返回时命中数据库

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

1 个答案:

答案 0 :(得分:2)

如果你有Django 1.2+,你可以使用raw()方法使用自定义查询的结果返回Model个实例的列表。在你的情况下这样的事情:

query = "<your query goes here>"
Object.objects.raw(query)