向后跟踪关系,并注释结果

2024-04-26 22:12:48 发布

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

假设我有几个模型,一个通过外键与另一个相关,比如:

class Tourist(models.Model):
    age = models.IntegerField()

class Country(models.Model):
    tourist = models.ForeignKey(Tourist)

我知道我可以从游客的角度倒过来看看他去过多少国家:

t = Tourist.objects.all()[0]
t.country_set.count()

但是,有没有办法对游客去过的国家进行计数?如果我能做些

Tourist.objects.annotate(countries_visited=country_set.count())

我知道那里的最后一点“代码”毫无意义,但我指望它能传达我内心的渴望。我知道我可以这样做:

[(t.pk, t.country_set.count()) for t in Tourist.objects.all()]

但我只是想知道有没有更好的办法。谢谢!你知道吗


Tags: 模型agemodelobjectsmodelscount国家all