我有一个挑战课程,人们可以投票给它。现在,每投给用户一票,用户将获得 5 分。
我已经用 for 循环解决了它。
class Challenge(models.Model):
speaker = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='speaker')
voters = models.ManyToManyField(settings.AUTH_USER_MODEL, , null=True, blank=True)
score = 0
challenges = Challenge.objects.filter(speaker=user)
for challenge in challenges:
score = score + challenge.voters.count() * 5
但我想知道我是否可以在过滤查询集的过程中立即做到这一点并获得更高的性能。