Примеры моделей:
Код: Выделить всё
class FirstModel(models.Model):
master_tag = models.CharField()
... other fields
class SecondModel(models.Model):
ref_name = models.CharField()
Что я пробовал:
Я пытался использовать аннотацию с Subquery и OuterRef, но не смог заставить это работать из-за постоянных ошибок.< /p>
Код: Выделить всё
from django.db.models import OuterRef, Subquery, Count
sub_query = Subquery(
SecondModel.objects.filter(ref_name=OuterRef("master_tag")).values_list("pk", flat=True)
)
FirstModel.objects.annotate(sm_count=Count(sub_query))
Я пробовал много других вещей, один из который помещает ".count()" в конец подзапроса, но это вызывает другую ошибку, поскольку count пытается быстро оценить запрос и терпит неудачу из-за OuterRef.
Итак, есть ли способ получить такой запрос с аннотацией счетчика? Какие-нибудь глупые ошибки я допустил при написании запроса выше?
Подробнее здесь: https://stackoverflow.com/questions/781 ... d-model-wh