首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Django评级系统

Django评级系统
EN

Stack Overflow用户
提问于 2011-02-10 02:04:09
回答 1查看 3.7K关注 0票数 1

我正在做一个项目,它需要一个评级系统,在这个系统中,他们可以对房屋的质量进行评级。他们会在管理面板上做这件事,所以它不是访问者会评价的东西。

例如,对于每个列表,他们可以对其进行1-5星的评分:位置:房间:餐饮选项:社区:总体:

在我的models.py文件中,我有这样的设置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Class Listing (models.Model):

...

    RATING_CHOICES = (
        (1, 1),
        (2, 2),
        (3, 3),
        (4, 4),
        (5, 5),
    )
    location_rating = models.DecimalField(choices = RATING_CHOICES, max_digits=3, decimal_places=2)
    room_rating = models.DecimalField(choices = RATING_CHOICES, max_digits=3, decimal_places=2)
    dining_options_rating = models.DecimalField(choices = RATING_CHOICES, max_digits=3, decimal_places=2)
    community_rating = models.DecimalField(choices = RATING_CHOICES, max_digits=3, decimal_places=2)
    recreation_rooms_rating = models.DecimalField(choices = RATING_CHOICES, max_digits=3, decimal_places=2)
    def __unicode__(self):
        return self.name

    def get_avg_rating(self):
        avg_rating = (self.location_rating + self.room_rating + self.recreation_rooms_rating + self.dining_options_rating + self.community_rating) / 5
        return avg_rating

我打算用一个小CSS来显示评分。仅仅将room_rating或avg_rating放在模板标记中是行不通的,所以我假设我必须在views.py中添加一些代码行。我已经检查了Django文档,但我仍然不确定该如何处理。

这看起来应该很容易做,但我真的不确定从哪里开始。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-10 04:29:51

你所采取的方向的一个潜在问题是,你只为每个列表存储了一组评级。如果用户B想要对列表进行评级,他必须覆盖用户A的评级。您需要将您的评级分解到一个单独的评价表中,并在您的列表和评级之间使用ManytoMany关系,而不是将评级放在列表中。这样,您可以让多个用户对特定列表进行评分,然后您可以计算并显示每个列表的平均值。有关参考,请参阅this discussion

使用现有的评级应用程序可能比从头开始更好。他们已经有了文档,所以您可以快速启动和运行它们,并且他们会为您处理数据库设计。

Django Ratings

Django Valuate

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4952697

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文