gpt4 book ai didi

django - 在 Django 1.2 中按字段指定组

转载 作者:行者123 更新时间:2023-12-02 05:13:43 24 4
gpt4 key购买 nike

我想使用 annotate 来计算我的模型中出现的次数,但是它没有在 group by 语句中使用正确的字段。它没有使用我想要的字段(即在计数函数中指定的字段),而是使用模型的主键。例如

ObjectHistory.objects.annotate(revisions=Count('resource'))

生成sql

SELECT *, COUNT(`resources_objecthistory`.`resource_id`) AS `revisions` FROM `resources_objecthistory` GROUP BY `resources_objecthistory`.`history_id`

其中history_id是ObjectHistory的主键

我想要的是:

SELECT *, COUNT(`resources_objecthistory`.`resource_id`) AS `revisions` FROM `resources_objecthistory` GROUP BY `resources_objecthistory`.`resource_id

我发现通过放置

ObjectHistory.objects.values.('resource').annotate(revisions=Count('resource'))

它按字段进行了正确的分组,但我无法访问模型中的其他字段。

group by字段中如何指定使用resource_id?

最佳答案

尝试:

    ObjectHistory.objects.values.('resource').\
extra(select_params=('attribute1', 'attribute2'))\
.annotate(revisions=Count('resource'))

关于django - 在 Django 1.2 中按字段指定组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2990126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com