Как в переменную добавить более одной записей модели?

У меня есть 3 модели.

  1. автор, к ней прикрепляются остальные 2-е;
  2. хранит, какой автор на кого подписался;
  3. хранит сами статьи (которые создает автор);

Мне нужно создать ленту, в которой будут выводиться самые новые статьи авторов, на которых подписан пользователь.

у меня это пока так:

def feedDef(request):

    # получит авторов, на которых пользователь подписан
    objs_autor = signModel.objects.filter(user_id = user_profile.id)

    content = ???

    # !здесь должен быть цикл, который переберёт записи для получения авторов, статьи которых сохранятся в переменную content
    for q in objs_autor:

        # добавить новые статьи авторов, на которых подписан пользователь
        content += vedModel.objects.filter(base_id = q.pk)

    # сначала новые
    content.order_by('-pk')

    #
    return render(request, 'site_ved/feed/index.html', {'content':content})
# модель с подписками
class signModel(models.Model):

    # на кого подписался пользователь
    autor_id = models.ForeignKey('account.profileModel', on_delete = models.CASCADE, related_name='autor_id')


    # кто подписывается
    user_id = models.ForeignKey('account.profileModel', on_delete = models.CASCADE, related_name='user_id')


# модель со статьями
class vedModel(models.Model):

    # прикрепит к базовому объекту профиля
    base_id = models.ForeignKey('account.profileModel', default = profileModel.objects.get(login='admin').id, on_delete = models.SET_DEFAULT)
    ...


# модель с авторами
class profileModel(models.Model):
    ...

Тут код не полный, а главная проблема, это заполнение переменной content. Вопрос в том, как в неё закинуть множество записей модели. Есть конечно вариант перебрать все записи модели со статьями, и для каждой сделать проверку, но его рассматривать собираюсь в последнюю очередь, т.к. записей будет очень много, что заметно замедлит загрузку страницы.


Ответы (1 шт):

Автор решения: Роман

Может не правильно понял, но чтобы выводить последние публикации, можно в модели сделать сортировку по дате

class vedModel(models.Model):

    # прикрепит к базовому объекту профиля
    base_id = models.ForeignKey('account.profileModel', default = profileModel.objects.get(login='admin').id, on_delete = models.SET_DEFAULT)
    ...
    publish = models.DateTimeField(default=timezone.now, verbose_name='Дата')
    class Meta:
        """Сортировка по дате публикации"""
     ordering = ('-publish',)

Во вьюхе вытаскиваете все статьи авторов, и в шаблоне через цикл их публикуете. Например:

{% for post in posts_author %}
{{post.title}}
{% endfor %}
→ Ссылка