如何在 Django 的多个实例的视图中使用模型函数?
How to use model functions in Views for multiple instances in Django?
我有一个博客 Post 模型,我定义了一个函数来计算点赞数。
型号如下->
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 模型以获取所有 Posts,如下所示 ->
posts = Post.objects.select_related().prefetch_related('images_set','comments_post').annotate(Count('comments_post')).all()
在这里,当我循环遍历帖子时,我可以调用 likesCount 函数,它也给了我正确的结果,但我想 return 模板的点赞数。
我该怎么做?
在您的模板中,试试这个:
{{ post.likes_set.count }}
并且请将字段名称小写,它们不是 类
我有一个博客 Post 模型,我定义了一个函数来计算点赞数。
型号如下->
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 模型以获取所有 Posts,如下所示 ->
posts = Post.objects.select_related().prefetch_related('images_set','comments_post').annotate(Count('comments_post')).all()
在这里,当我循环遍历帖子时,我可以调用 likesCount 函数,它也给了我正确的结果,但我想 return 模板的点赞数。 我该怎么做?
在您的模板中,试试这个:
{{ post.likes_set.count }}
并且请将字段名称小写,它们不是 类