我已经开始在Django中构建一个需要多标准加权评级的应用程序。我的问题与几年前的this one完全相同,遗憾的是没有任何答案。
如果有人可以给我一些关于如何在Django中制定多标准加权评级的提示,我很乐意听到它!我是整个Django / Python世界的新手,来自PHP背景。
非常感谢!
PS:我没有在这个帖子中添加太多信息,因为问题已在其他主题here中描述。这是完全一样的。
答案 0 :(得分:0)
加权评级最简单的解决方案是添加一个额外的字段,并在评级对象的custom save
method中自动填充。
只要获得整体平均评分,您就可以使用Django's aggregation queries每次动态计算它(最简单/最准确的方法),或者您可以尝试维护更新的平均评分字段每次添加/删除/更新评级时(如果您正在运行阅读繁重的服务,则性能更高的方法)。有关实施这些内容的更多详细信息,请参阅my answer here(使用总和而非平均值)以及有关权衡的更多详细信息。
答案 1 :(得分:0)
如果您不想通过覆盖保存方法来创建需要维护的单独字段,则需要遵循这种稍微复杂的方法:Using .aggregate() on a value introduced using .extra(select={...}) in a Django Query?