Как использовать функции модели в представлениях для нескольких экземпляров в Django?
У меня есть модель записи блога, и я определил функцию для вычисления количества лайков.
Модель выглядит следующим образом ->
class Post(models.Model):
user = models.ForeignKey(User, on_delete=models.PROTECT)
title = models.CharField(max_length=255)
description = models.CharField(max_length=1000,null=True)
Tags = models.CharField(max_length = 255,null=True,blank=True)
Created_date = models.DateTimeField(auto_now_add=True)
Updated_date = models.DateTimeField(auto_now=True)
category = models.ForeignKey(Category, on_delete=models.PROTECT)
Likes = models.ManyToManyField(to=User, related_name='Post_likes')
def __str__(self):
return self.title
def likesCount(self):
return self.Likes.count()
Теперь я запрашиваю модель Post Model из БД, чтобы получить все сообщения следующим образом ->
posts = Post.objects.select_related().prefetch_related('images_set','comments_post').annotate(Count('comments_post')).all()
Здесь, когда я перебираю посты, я могу вызвать функцию likesCount, и она также дает мне правильный результат, но я хочу вернуть в шаблон количество лайков. Как я могу это сделать?
в вашем шаблоне, попробуйте следующее:
{{ post.likes_set.count }}
и, пожалуйста, сделайте имена полей строчными, они не являются классами