django-tables2使用查询

时间:2016-10-05 19:49:37

标签: python django django-tables2

我使用django-tables2来显示数据库查询的值。而且每件事都很好。我现在正在使用Django-dabug-toolbar,并正在浏览我的页面。更多出于好奇而非性能需求。当我在带有表的页面上看到调试工具栏时,调试工具栏注册了超过300个条目的300多个查询。即使没有性能影响(至少现在没有),我也不认为充斥着这么多查询的数据库是一个好主意。所有数据应仅来自一个查询。

为什么会发生这种情况?如何减少查询次数?

2 个答案:

答案 0 :(得分:2)

我发布此信息作为我和其他可能遇到同样问题的人的未来参考。

搜索了一下后,我发现django-tables2正在为每一行发送一个查询。查询类似SELECT * FROM "table" LIMIT 1 OFFSET 1,偏移量增加。

在创建表并传递查询之前,我通过调用query = list(query)减少了sql调用的数量。通过在python视图代码中评估查询,该表现在似乎与evaulated数据一起使用,而且只有一个数据库调用而不是数百个。

答案 1 :(得分:1)

这是一个错误,并已在https://github.com/bradleyayers/django-tables2/issues/427

中修复