python - 如何在 Django 1.1 中执行 "Group By"查询?

标签 python django

我看到很多关于 1.1 的聚合的讨论,但我不确定如何使用它来执行简单的 group by。

我正在尝试使用 Django 的站点地图框架来创建一个 sitemap.xml 文件,Google 可以抓取该文件以查找我网站的所有页面。目前我将所有对象传递给它,如 Model.objects.all() 中一样 - 然而真正重要的是每个名称只传递 1 个。可能有 5-10 个具有相同名称的模型实例,但我只想传递一个以避免重复。

如果我这样做:

Model.objects.values('name').annotate(Count('name'))

它给了我我想要的东西,但我没有从模型中检索所有字段 - 创建站点地图的代码随后将被迫重新查询每个模型以创建链接。那么,在检索模型的所有字段时,如何让它按名称分组呢?

最佳答案

Django 模型是延迟加载的。如果您的代码像站点地图那样遍历模型关系,那么开销将是相同的。在您请求相关模型之前,模型字段本质上是代理。

关于python - 如何在 Django 1.1 中执行 "Group By"查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1581383/

相关文章:

python - 如何在python中解析HTTP请求中参数的空值?

python - 如何在Django中实现这个模型?

python - 基于国家频率计数的彩色 map

python - 你什么时候会使用 `flatten()` 而不是 reshape(-1)?

django - Shopify graphQL 查询

javascript - 使用 Cocos2d-JS 在 Django 应用程序中加载 .js 文件时出错

Python Pandas : pivot certain variables in wide-form DataFrame

docker 容器中的 django + nginx : can not upload any file with forms

python - 如何在 Python/Django 中获取内存中视频的持续时间?

python - 当从遗留数据库生成模型类时,如何在 django-rest 中序列化多个模型数据