django - DRF:如何创建一个模型属性来统计喜欢和不喜欢的数量?
问题描述
我有一个看起来像这样的模型:
class Posts(models.Model):
title = models.CharField(max_length=100)
creation_timestamp = models.DateTimeField(auto_now_add=True)
body = models.CharField(max_length=255)
user_id = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
likes = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name="likes",blank=True)
dislikes = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name="dislikes",blank=True)
我想在这个模型中创建一个可以计算喜欢和不喜欢的数量的属性。我想它看起来像这样:
@property
def interaction_count(self):
return len(self.likes) + len(self.dislikes)
可悲的是,打电话self.likes
并没有像我想要的那样给我一份清单。
这是我尝试访问的列表的示例:
喜欢和不喜欢的例子(我没有足够的声誉来嵌入图像)(为了澄清,这个喜欢和不喜欢列表中的数字是 user_ids.
是否有另一种方法可以访问与特定帖子实例关联的所有喜欢的列表?或者也许有更好的方法来完全创建interaction_count
?
解决方案
我认为这应该有效:
@property
def interaction_count(self):
return self.likes.count() + self.dislikes.count()
推荐阅读
- r - 尝试使用 R 中的正则表达式将问题与在线表单中的答案分开
- haproxy - ViteJS websocket 与 https/2 over haproxy:意外的响应代码:404
- python - 使用 Python/statsmodels 中的虚拟值将“基本级别”保持在回归中
- mysql - 将整数/字符串列表存储到mysql的最佳方法?
- php - 如何在请求大量请求时限制一次连接数,并在收到响应时将它们排入队列?
- python - 无法使用 Selenium Python 选择下拉按钮
- javascript - 如何用css在他的区域推出一个上升菜单
- javascript - 使用js和jquery从复选框中获取值
- kotlin - 如何从 CLI 编译和运行依赖于 jar 的 kotlin 文件?
- python - 如何在python 3中将字符串划分为子字符串