Django count注释字段

2024-09-27 21:33:17 发布

您现在位置:Python中文网/ 问答频道 /正文

Django 1.3,Python 2.7

我有以下模型(省略了一些不相关的字段):

class Encounter(models.Model):
  subject = models.ForeignKey('Subject', to_field='uuid')
  uuid = models.SlugField(max_length=36, unique=True, default=make_uuid, editable=False)

class Subject(models.Model):
  uuid = models.SlugField(max_length=36, unique=True, default=make_uuid, editable=False)

我用以下代码计算了每个受试者的遭遇次数:

^{pr2}$

现在我想知道有多少受试者对revcount的每个值都有revcount的遭遇。我尝试了以下方法:

sprime_in_e = e_in_s.values('revcount').annotate(countprime=Count('revcount'))

但得到错误“Cannot compute Count('revcount'):'revcount'是一个聚合”。有什么建议吗?在

注意:我需要e_in_s产生的值及其注释。在


Tags: intruedefaultmakemodeluuidmodelslength
1条回答
网友
1楼 · 发布于 2024-09-27 21:33:17

不能对带批注的值使用批注。但是,您可以使用aggregateSee the docs.

您的查询将如下所示:

e_in_s = Subject.objects.annotate(revcount = Count('encounter')).order_by('-revcount')
sprime_in_e = e_in_s.values('revcount').aggregate(countprime=Count('revcount'))

如果这还不够,您需要使用extra功能或下拉到原始SQL。在

相关问题 更多 >

    热门问题