У меня есть следующие модели:
class Foo(models.Model)
bar = models.ForeignKey(Bar, on_delete=models.PROTECT)
class Bar(models.Model)
...
class Baz(models.Model)
bar = models.ForeignKey(Bar, on_delete=models.PROTECT)
Я хочу знать, возможно ли сделать что-то похожее на аннотацию, чтобы связать набор запросов Baz
с предварительно отфильтрованным набором запросов Foo
. Что-то вроде:
queryset = Foo.objects.some_filter()
.annotate(bazs=QuerySet('bar__baz_set.another_filter()'))
Обратите внимание, что набор запросов Baz
также фильтруется и что Bar
не всегда может иметь Baz
Это то, чего я надеюсь достичь в шаблоне:
{% for foo in queryset %}
...
{% for baz in foo.bazs %}
...