【发布时间】:2021-07-22 11:06:37
【问题描述】:
我有一个带有 ManyToManyField 字段“用户”的模型帖子:
class Post(models.Model):
STATIC_CHOICES = (
('draft', 'Draft'),
('published', 'Published')
)
title = models.CharField(max_length = 255)
slug = models.SlugField(max_length = 255)
author = models.ForeignKey(User, related_name = 'blog_posts', on_delete = models.CASCADE)
body = models.TextField()
likes = models.ManyToManyField(User, related_name = 'likes', blank = True)
upvotes = models.IntegerField(default = 0)
created = models.DateTimeField(auto_now_add = True)
status = models.CharField(max_length = 10, choices = STATIC_CHOICES, default = 'draft')
def __str__(self):
return self.title
def total_likes(self):
return self.likes.count()
def get_absolute_url(self):
return reverse("post_detail", args=[self.id, self.slug])
我了解total_likes()方法返回视图中的点赞数。但是,我想在upvotesIntegerField 的默认值中显示点赞数。基本上,如果我可以这样做:
upvotes = models.IntegerField(default = total_likes())
这样,喜欢的数量就会在管理员的 IntegerField 中显示为默认值。但是,既然我不能这样做,那么最好的方法是什么让我可以让likes 的数量出现在upvotes 的 IntegerField 中?
【问题讨论】:
标签: python django django-models properties