Скажем, у меня есть пара моделей, одна связана с другой через внешний ключ, например:
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()]
Но мне просто интересно, есть ли лучший способ сделать это. Спасибо!