progammist
May 9, 2020, 10:14 p.m.

Не могу вывести закладки пользователя (избранное)

Django

Ребята, нужна помощь. Сделал добавление поста в закладки (избранное) для пользователя. Закладки добавляются успешно, а вот вывести закладки, которые добавил юзер у меня не получается. Пытаюсь выводить в шаблоне:

  1. {% for bookmark in user.bookmarkarticle_set.all %}
  2. {{ bookmark.post.title }} #модель статьи Post
  3. {% endfor %}

Ничего не выводится.

models.py (модель поста/статьи)

  1. class Post(models.Model):
  2.  
  3. title = models.CharField(max_length=200, unique=True, verbose_name=u'Заголовок поста', db_index=True )
  4. slug = models.SlugField(max_length=200, unique=True, verbose_name=u'URL адрес(автоматический)', )
  5. content = RichTextUploadingField()
  6.  
  7. def get_bookmark_count(self):
  8. return self.bookmarkarticle_set.all().count()
  9.  
  10. def __str__(self):
  11. return self.title
  12.  

Посты на главной странице вывожу views.py :

  1. class PostList(generic.ListView):
  2. queryset = Post.objects.filter(status=1).select_related('author').prefetch_related('tagged_items__tag').order_by('-created_on')
  3. template_name = 'index.html'
  4.  

url.py

  1. path('', views.PostList.as_view(), name='home'),

Для закладок вьюху не создавал, не имею понятия как. Вопрос, как я могу вывести закладки пользователя в шаблоне? Буду благодарен за любую помощь

1
The question is asked by the articleDjango - Tutorial 022. Adding a bookmark system (favorites) to the site

Do you like it? Share on social networks!

2
progammist
  • May 10, 2020, 3:55 p.m.

Попробовал сделать вьюху:

  1. def profile(request):
  2. user = request.user
  3. bookmarks = user.bookmarkmovie_set.all()
  4. return render(request,'users/profile/profile.html', {'bookmarks': bookmarks})

Получаю ошибку:

  1. AttributeError at /profile
  2. 'User' object has no attribute 'bookmarkmovie_set'
    progammist
    • May 10, 2020, 7:24 p.m.
    • The answer was marked as a solution.

    Разобрался.
    Оставлю для тех, у кого возникнет подобный вопрос. Посты выводим циклом:

    1. {% for bookmark in user.bookmarkarticle_set.all %}
    2. {{ bookmark.obj.title }}
    3. {% endfor %}
    4.  

    Так как мы ссылаемся на обьект статьи в модели BookmarkArticle через переменную obj , то и доступ к статье получаем через неё:

    1. {{ bookmark.obj.title }}

      Comments

      Only authorized users can post comments.
      Please, Log in or Sign up
      • Last comments
      • AK
        April 1, 2025, 11:41 a.m.
        Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
      • Evgenii Legotckoi
        March 9, 2025, 9:02 p.m.
        К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
      • VP
        March 9, 2025, 4:14 p.m.
        Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
      • ИМ
        Nov. 22, 2024, 9:51 p.m.
        Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
      • Evgenii Legotckoi
        Oct. 31, 2024, 11:37 p.m.
        Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup