I have two models: in one, the user creates a post, and in the other, the likes of those posts are collected. Now I would like the number of these likes to be displayed on the post. Is there any way for all posts with the number of likes to be displayed on one template?
template.html:
<div class="col-sm-4 mx-auto ">
<ul class="list-group">
{%for post in posts %}
<a id="like_{{post.id}}" href="" class="like-link text-muted">
+{% for every_like in likes_obj%}{%if every_like.liked_what == post%}{{every_like.count}}{%endif%}{%endfor%}
## At this point I would like to see the number of likes for each post it is assigned to, but unfortunately {{every_like.count}} returns
nothing.
</a>
{% endfor %}
</ul>
</div>
views.py:
def index(request):
list = Post.objects.all().order_by('-date')
paginator = Paginator(list, 10)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
return render(request, "network/index.html", {
"post_form": PostForm(),
"posts": page_obj,
"likes_obj": Like.objects.all()
})
models.py:
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
subject = models.CharField(max_length=200, blank=False)
content = models.TextField(blank=False)
class Like(models.Model):
author_of_like = models.ForeignKey(User, on_delete=models.CASCADE)
liked_what = models.ForeignKey(Post, on_delete=models.CASCADE)