我已经看过很多关于1.1聚合的讨论,但我不知道如何使用它来执行一个简单的组。
我正在尝试使用Django的站点地图框架来创建一个sitemap.xml文件,Google可以抓取该文件来查找我网站的所有页面。目前我传递所有对象,如Model.objects.all()
- 但真正重要的是每个名称只传递1个。可能有5-10个具有相同名称的Model实例,但我只想传递一个以避免重复。
如果我这样做:
Model.objects.values('name').annotate(Count('name'))
它给了我想要的东西,但是我没有从模型中检索所有字段 - 然后,创建站点地图的代码将被强制重新查询每个模型以创建链接。那么如何在检索模型的所有字段时按名称对其进行分组?
答案 0 :(得分:1)
Django模型是延迟加载的。如果您的代码遍历模型关系,就像站点地图一样,这将是相同的开销。在您请求相关模型之前,模型字段基本上是代理。
答案 1 :(得分:1)
可能会有所帮助吗?
Model.objects.values( '姓名')。所有()。不同的()