【问题标题】:django product of annotateannotate的django产品
【发布时间】:2014-05-18 22:18:41
【问题描述】:

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)
  location = models.ForeignKey('Location', blank=True, to_field='uuid')

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

我想知道每个地点发生了多少次遭遇。如果 Encounter 包含位置字段,我可以使用 annotate(),但它没有,我也无法添加。我目前通过annotate() 知道每个主题的遭遇次数和每个位置的主题数量。我愿意将这些乘法组合,但我想知道a)是否可行,b)是否有更好的方法。

提前致谢!

【问题讨论】:

    标签: python django django-1.3


    【解决方案1】:

    似乎这样应该可以:

    Location.objects.annotate(encounter_count=Count('subject__encounter'))
    

    【讨论】:

      猜你喜欢
      • 2021-01-30
      • 2017-01-15
      • 2012-12-12
      • 2017-06-22
      • 1970-01-01
      • 2016-10-31
      • 2017-08-25
      • 2018-09-22
      相关资源
      最近更新 更多