Manevant
@Manevant
Учу Python

Как создать Queryset с фильтром по кол-ву связанных объектов в другой таблице?

Раньше не испытывал особых трудностей в построении queryset'ов, а тут прям беда :)

Имеется Таблица CarReviews с ForeignKey к таблице Car.
Необходимо получить все Car с кол-вом CarReviews больше чем N. N - переменная.

class CarRewiews(models.Model):
    car = models.ForeignKey(Car, verbose_name=_('Car'), related_name='car_rewiews')

class Car(models.Model):
    somefield = models.TextField()

Впал в ступор. Подскажите путь решения)
  • Вопрос задан
  • 308 просмотров
Решения вопроса 2
@deliro
from django.db.models import Count
Car.objects.annotate(reviews_count=Count('car_rewiews')).filter(reviews_count__gt=N)

Кстати, у тебя ошибка (а не у меня) в car_rewiews. car_reviews же.
Ответ написан
winordie
@winordie
Лучшая документация -- исходники
from django.db.models import Count

Car.objects.annotate(num_car_reviews=Count('car_reviews')).filter(num_car_reviews__gt=your_N)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы