【发布时间】:2012-11-15 05:22:52
【问题描述】:
我正在为 django 开发一个问卷模型,该模型应该可以由没有编程经验的人维护,所以我花了很多时间来制作模型以弥补小细节。现在我想释放潜力SQL 数据库查询,以便能够生成有关给出的响应和反馈的统计信息。
我的问题类型之一是 5 星评级,因此我希望能够收集有关该问题的统计数据,例如:
- 问题 q 有多少个回答是 5 星(、4 星、3 星等)?
- 平均评分反应是多少?
理想情况下,我希望将这些统计问题记录在模型中,并创建一个视图来显示所有询问的统计数据,并使整个事情保持程序化。
这应该是一个精心设计的模型或一组模型,比如反馈,还是已经有一些框架或模块可以为我处理这些情况?
我的问卷/models.py:
class QuestionType(models.Model):
name = models.CharField(max_length=256, blank=True, default="")
class Question(models.Model):
text = models.TextField()
type = models.ForeignKey(QuestionType)
class Response(models.Model):
question = models.ForeignKey(Question)
answer = models.TextField()
class Feedback(models.Model):
user = models.ForeignKey(User)
responses = models.ManyToManyField(Response)
response_time = models.DateTimeField(auto_now_add=True)
【问题讨论】:
-
您是否有特定原因要像这样拆分
Feedback和Reponse?多个问题可以一个答案吗? -
我将反馈和响应分开,因为模型的其他部分已被拉出以在此问题中保留“仅重要的东西”。一个响应兼作“选择”问题或评级问题的一组答案。例如,一个问题“你如何评价......”将有 5 个可能的回答(并且只有 5 个)1 星、2 星、等等。同样,“单选”和“多选”问题也会有一组特定的回答。这个问题不是关于如何修改这些模型,而是关于如何对我想从这些模型中收集的统计数据进行建模。
标签: django django-models dynamically-generated django-statistics