从几个模型中添加 django 字段
Add up django fields from several models
我的应用程序有几个 post 类型,每个 post 类型都是一个模型,每个模型都有一个名为 "up_vote" 和 "down_vote" 的字段。现在我想向用户显示所有这些字段的总和,以便我计算 request.user.model1.up_vote + request.user.model2.up_vote + request.user。 model3.up_vote 与 down_vote 相同。
但我不知道查询在我看来应该是什么样子。
最后我只想显示用户创建的所有 post 的整体 up/down_votes。
models.py
# code example
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(verbose_name="Title", max_length=30)
...
up_vote = models.IntegerField(default=0)
down_vote = models.IntegerField(default=0)
class Post_Vote(models.Model):
voter = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
voted = models.ForeignKey(Post, on_delete=models.CASCADE)
class Meta:
unique_together = ('voter', 'voted')
感谢阅读:)
您可以使用 aggregate 例如
from django.db.models import Sum
user = User.objects.get(...)
up_vote_count = Post.objects.filter(user=user).aggregate(Sum('up_vote'))
down_vote_count = Post.objects.filter(user=user).aggregate(Sum('down_vote'))
我的应用程序有几个 post 类型,每个 post 类型都是一个模型,每个模型都有一个名为 "up_vote" 和 "down_vote" 的字段。现在我想向用户显示所有这些字段的总和,以便我计算 request.user.model1.up_vote + request.user.model2.up_vote + request.user。 model3.up_vote 与 down_vote 相同。
但我不知道查询在我看来应该是什么样子。 最后我只想显示用户创建的所有 post 的整体 up/down_votes。
models.py
# code example
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(verbose_name="Title", max_length=30)
...
up_vote = models.IntegerField(default=0)
down_vote = models.IntegerField(default=0)
class Post_Vote(models.Model):
voter = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
voted = models.ForeignKey(Post, on_delete=models.CASCADE)
class Meta:
unique_together = ('voter', 'voted')
感谢阅读:)
您可以使用 aggregate 例如
from django.db.models import Sum
user = User.objects.get(...)
up_vote_count = Post.objects.filter(user=user).aggregate(Sum('up_vote'))
down_vote_count = Post.objects.filter(user=user).aggregate(Sum('down_vote'))