【发布时间】:2019-09-14 12:57:52
【问题描述】:
我正在使用 Django(2.2) 和 Python(3.7) 开展一个项目,在该项目中我必须为特定场景实现模型:
我有一个投票,我们有五个问题,例如:
DELIVERING VALUE
EASY TO RELEASE
FUN
HEALTH OF CODEBASE
TEAMWORK
这些问题中的每一个都有以下下拉形式的选项: - 选择 - --有帮助-- --没有帮助-- --灾难--
所有这些投票都将属于一个组,稍后我需要执行一些聚合来获得针对每个问题(如 DELIVERING VALUE)的这些选项(如有帮助)的总票数。
这是我目前在 Django 模型中实现此场景的方式:
来自models.py:
class UserGroup(models.Model):
email = models.EmailField(primary_key=True)
group = models.CharField(max_length=250, default='notingroup')
def __str__(self):
return self.group
VOTE_CHOICES = (
('helpful', "helpful"),
('meh', 'meh'),
('disaster', 'disaster')
)
class VotingValues(models.Model):
value1 = models.CharField(max_length=40)
value2 = models.CharField(max_length=40)
value3 = models.CharField(max_length=40)
value4 = models.CharField(max_length=40)
value5 = models.CharField(max_length=40)
score1 = models.CharField(choices=VOTE_CHOICES, max_length=20)
score2 = models.CharField(choices=VOTE_CHOICES, max_length=20)
score3 = models.CharField(choices=VOTE_CHOICES, max_length=20)
score4 = models.CharField(choices=VOTE_CHOICES, max_length=20)
score5 = models.CharField(choices=VOTE_CHOICES, max_length=20)
user = models.EmailField(max_length=255)
group = models.CharField(max_length=250, default='notingroup')
date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.user + ' \'s ' + 'vote in ' + self.group
有没有更好的方法来实现这个场景?
【问题讨论】:
标签: python django python-3.x django-models django-2.2