22
Июл
2021

Django ORM. Как составить запрос без цикла

Всем привет. Помогите составить правильный запрос к БД в Джанго.

Суть такова, что есть модель:

class Subscription(models.Model):
    user = models.ForeignKey(CustomUser, on_delete=models.CASCADE,
                             related_name='followers')
    author = models.ForeignKey(CustomUser, on_delete=models.CASCADE,
                               related_name='following')

    class Meta:
        constraints = [
            models.UniqueConstraint(fields=['user', 'author'], 
                                    name='subscription_unique'),
        ]
        verbose_name = 'Подписка'
        verbose_name_plural = 'Подписки'

    def __str__(self):
        return f'{self.user} => {self.author}'

Есть view

user_obj = [follow_obj.author for follow_obj in user.followers.all()] 

То есть идет запрос к таблице по related_name, идет выборка тех авторов, на которых подписан текущий пользователь. По полученному списку пробегаем циклом и добавляем в массив объекты-авторов.

Собственно вопрос, как сразу получить список авторов БЕЗ ЦИКЛА?

Я уже 3-й день голову ломаю, не получается решить эту задачу. Помогите, подскажите, как обойтись без цикла?

Источник: https://ru.stackoverflow.com/questions/1307746/django-orm-%D0%9A%D0%B0%D0%BA-%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81-%D0%B1%D0%B5%D0%B7-%D1%86%D0%B8%D0%BA%D0%BB%D0%B0

Тебе может это понравится...

Добавить комментарий