django模型统计建模
我正在为django开发一个问卷模型,该模型应该可以由没有编程经验的人维护,因此我花了很多时间来构建模型,以弥补一些小细节。。现在,我想挖掘SQL数据库查询的潜力,以便能够生成有关给定响应和反馈的统计信息 我的问题类型之一是五星评级,因此我希望能够收集有关该问题的统计数据,如:django模型统计建模,django,django-models,dynamically-generated,django-statistics,Django,Django Models,Dynamically Generated,Django Statistics,我正在为django开发一个问卷模型,该模型应该可以由没有编程经验的人维护,因此我花了很多时间来构建模型,以弥补一些小细节。。现在,我想挖掘SQL数据库查询的潜力,以便能够生成有关给定响应和反馈的统计信息 我的问题类型之一是五星评级,因此我希望能够收集有关该问题的统计数据,如: 问题q有多少回答是五星(、四星、3星等) 平均评级反应是什么 理想情况下,我希望将这些统计问题记录在一个模型中,并创建一个视图,该视图显示所有要求的统计数据,并使整个过程保持程序化 这应该是一个精心设计的模型还是一组
- 问题q有多少回答是五星(、四星、3星等)
- 平均评级反应是什么
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)
这将满足您的要求:
class QuestionType(models.Model):
name = models.CharField(max_length=256, blank=True, default="")
class Question(models.Model):
text = models.TextField()
type = models.ForeignKey(QuestionType)
def how_many_ratings_where_x_stars(self, stars):
return self.rating_set.filter(stars=stars).count()
def average_rating(self, stars):
return self.rating_set.aggregate(models.Avg('stars'))['stars__avg']
class Response(models.Model):
question = models.ForeignKey(Question)
answer = models.TextField()
user = models.ForeignKey(User)
timestamp = models.DateTimeField(auto_now_add=True)
class Rating(models.Model):
question = models.ForeignKey(Question)
stars = models.PositiveIntegerField(min_value=1, max_value=5)
user = models.ForeignKey(User)
timestamp = models.DateTimeField(auto_now_add=True)
class Meta:
unique_together = [('question', 'user')]
有没有具体的原因让你像这样把
反馈
和回复
分开?对于许多问题,我能给出一个答案吗?我将反馈和回答分开,因为模型的其他部分已经被删除,以保留这个问题中的“重要内容”。对于“选择”问题或评级问题,一个回答可以作为一组答案的两倍。。例如,一个问题“你如何评价…”将有5个可能的回答(并且只有5个)1星、2星等。“单选”和“多选”问题也将有一组特定的回答。这个问题不是关于如何修改这些模型,而是关于如何对我想从这些模型中收集的统计数据建模。正如我前面所说的,模型只是为了显示我正在处理的内容,但不需要更改,我想知道是什么(模型或其他方式)我应该做些什么来收集关于这个模型的统计数据。。例如:有多少人对(问题…)回答“是”或“否”,对(…)的平均评分是多少,等等。