• Как писать цикл внутри views.py в Django?

    @iMrDron
    Все это можно сделать при помощи аннотаций примерно так:
    artists = (
        Artist.objects
        .filter(album_set__genres__name__in=["Traditional music", "Juz"])
        .annotate(album_count=Count('album_set', distinct=True))
    )

    В цикле делать запросы к бд недопустимо вообще! Изучите аннотации, если бывает что их возможностей не хватает, допустим нужно делать ещё промежуточные вычисления, тогда нужно идти по другому пути доставать из базы всех артистов, доставать одним запросом все альбомы для артистов отфильтрованные по genres, и уже по результатам итерироватся и считать что нужно.
    Ответ написан
    Комментировать