我有两个型号:
class Series(models.Model):
name = models.CharField(max_length=140)
slug = models.SlugField(max_length=140, unique=True)
class Issue(models.Model):
title = models.CharField(max_length=140, blank=True)
series = models.ForeignKey(Series, on_delete=models.CASCADE)
我正在使用django-star-ratings来允许用户对各个问题进行评分。我希望根据已评级的问题获得该系列的平均评级,但在阅读文档后仍未能提出合适的解决方案。任何帮助或建议将不胜感激!
答案 0 :(得分:0)
以下是我提出的解决方案:
在系列型号上,我添加了以下内容:
@property
def average_rating(self):
l = []
for issue in self.issue_set.all():
l.append(issue.id)
rating = Rating.objects.filter(object_id__in=l).aggregate(Avg('average'))
return rating['average__avg']
如果有人有更好的解决方案,请不要羞于分享。