【发布时间】:2010-12-24 02:00:43
【问题描述】:
我在连接和分页方面遇到了问题。我有 3 个模型:
- 垫
- 标签
- 标签关系
我使用标签关系来管理 Pad 和标签之间的多对多关系(使用 ManyToMany 字段的 through 属性)。 现在,当我在 Pad 和 Tag 表上进行连接时,它给了我类似的东西......
pad.name tag.name etc
---------------------------
pad1 tag1 ...
pad1 tag2 ...
pad2 tag3 ...
现在,当我根据这些结果创建 Paginator() 对象时,显然每页的项目计数错误。我将不得不遍历所有结果并生成这样的字典...
[{name:'pad1', tags:['tag1', 'tag2']}, {name:'pad2' ....]
...并在此使用 Paginator 来获取正确的页面。
解决这个问题的最佳方法是什么?我可以对当前页面上的每个 Pad 对象进行数据库查询以获取它的标签,但我想这迟早会杀死服务器(应该是高性能的)。
结果的内容也可能很长,并且遍历整个集合会消耗大量系统内存(或者会不会?启发我:))。
【问题讨论】:
标签: sql django join pagination