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)是否有更好的方法。
提前致谢!
答案 0 :(得分:0)
似乎这应该有效:
Location.objects.annotate(encounter_count=Count('subject__encounter'))