Есть список тем, "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>