gpt4 book ai didi

python - 在django中实现评分

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:07 25 4
gpt4 key购买 nike

在模型中实现速率字段的更好方法是什么。现在我有了这个:

class Story(models.Model):
...
rate = models.(help here)

class Rating(models.Model):
rate = models.FloatField(validators=[MinValueValidator(0.0), MaxValueValidator(10.0)])
story = models.ForeignKey(Story, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)

或者还有其他方法吗?

最佳答案

正如@Liudvikas Bajarunas 所说,将 story 定义为 Rating 模型上的外键就足够了。您可以使用 rating_set 访问故事评级:

story_ratings = story.rating_set.all()

参见 the documentation on following relationships backwards了解更多信息。

您可以将该方法与 aggregation 结合使用获取故事的平均评分:

class Story(models.Model):
...
@property
def average_rating(self):
return self.rating_set.all().aggregate(Avg('rate'))['rate__avg']

关于python - 在django中实现评分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58115738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com