@IoannKh

Как отобразить список избранных topic, а не только одного? Всех тем, которых я добавил в избранное. И как их удалить?

Есть список тем, "topic", которых я добавляю в избранное. Но у меня отображается только одна тема. Как сделать так, чтобы я мон удалить избранные темы и отобразить весь список тем, добавленных в избранное?
def favorite_add(request, id, self):
    topiz = get_object_or_404(Topic, id=id)
    if topiz.favourites.filter(id=self.request.topic.id).exists():
        topiz.favourites.remove(self.request.topic)
    else:
        topiz.favourites.add(self.request.topic)
    return HttpResponseRedirect(self.request.META['HTTP_REFERER'])
 
 
 
def favouritie_list(request, topic_id):
 
        # new = Topic.newmanager
    # new = Topic.objects.get(topic=request.topic_id)
    new = Topic.objects.get(id=topic_id)
    context = {'new': new}
    return render(request,  'favourites/favourite.html', context)
 
 
models.py 
 
class Topic(models.Model):
 
    name = models.CharField(max_length=200)
    category = models.ForeignKey(
        Category, verbose_name="Category", on_delete=models.SET_NULL, null=True, related_name='topic'
    )
    content = models.TextField()
    likes = models.ManyToManyField(User, related_name='topic_likes', default=None, blank=True)
    created = models.DateField(auto_now=False)
    tags = TaggableManager()
    slug = models.SlugField(max_length=130, unique=True)
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    favourites = models.ManyToManyField(User, related_name='favorite', default=None, blank=True)
    excerpt = models.TextField(null=True)
    objects = models.Manager()
 
    def __str__(self):
        return self.name
 
    def total_likes(self):
        return self.likes.count()
 
    def get_absolute_url(self):
        # return reverse("forum:topic_detail", kwargs={"slug": self.url})
        return reverse_lazy('forum:topic_detail', kwargs={'slug': self.slug})
 
    def tag_list(self) -> str:
        return u", ".join(o.name for o in self.tags.all())
 
    class Meta:
        verbose_name = 'Topic'
        verbose_name_plural = 'Topics'
 
 
html.py
 
{% block title %}Users Favourties{% endblock %}
{% block content %}
<div class="container">
    <section class="jumbotron text-center bg-white">
        <div class="container">
            <h1>User saved favourite posts</h1>
            <p class="lead text-muted">Here you can remove or view the favourites topics you have added</p>
        </div>
    </section>
    <div>
 
        <div class="row">
            {% if new %}
            <h2 style="font-size:18px;font-weight:bold">{{ne|truncatechars:50}}</h2>
 
            <div class="col-md-4">
                <a class="text-dark" href="{{topic.get_absolute_url}}">
                    <div class="card mb-4 box-shadow">
                        <div class="card-body">
                            Topic name:
                            <h2 style="font-size:16px">{{new.name}}</h2>
                            Topic content:
                            <h2 style="font-size:16px">{{new.content}}</h2>
                            <div class="d-flex justify-content-between align-items-center">
                                <div id="favourite-section"><a href="{% url 'forum:favourite_add' new.id %}"
                                        class="btn btn-outline-primary">Remove</a></div>
                            </div>
 
                        </div>
                    </div>
                </a>
            </div>
            {% endif %}
 
        </div>
 
    </div>
{% endblock %}
</div>
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ответы на вопрос 1
AlexNest
@AlexNest
Работаю с Python/Django
Как отобразить список избранных topic

Делать выборку не по id топика
И как их удалить

Так как описано в документации
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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