从原始sql创建模型实例

时间:2015-08-10 10:27:38

标签: sql django count

有没有办法在django中从原始sql创建模型实例?我遇到了django.paginator完成的额外计数查询的问题(它的veeeeery很慢),我想用一个查询来替换,该查询通过使用带有SQL_CALC_FOUND_ROWS的原始sql来获取带有计数的过滤数据。

重点是,我需要将数据作为模型实例返回,因为我不想重建我的所有模板。

1 个答案:

答案 0 :(得分:1)

如果您需要比ORM提供的控制更多的控制权,Django支持可以映射到模型的raw个查询。

for p in Person.objects.raw('SELECT * FROM app_person'):
    print(p)

如果您只是尝试为查询添加计数,那么annotate会不够?

p = Person.objects.annotate(children_count=Count('children'))