Django newb 在这里,使用 django polls tutorial 并尝试添加一个模型来跟踪投票结果:
# Create your models here.
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
numChoices = models.IntegerField(default=0)
def __unicode__(self):
return self.question
class Choice(models.Model):
poll = models.ForeignKey(Poll)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __unicode__(self):
return self.choice_text
class Session_results(models.Model):
sessionKey=models.ForeignKey(Session)
questionAsked = models.ForeignKey(Poll)
answerChosen=models.ForeignKey(Choice)
def __unicode__(self):
return self.sessionKey
用例是我基本上有一个问题列表(投票模型),一个选择列表,其中每个选择映射到一个问题(选择模型),我想保留一个会话列表,我可以在其中跟踪什么用户已回答的问题(Session_results 模型)。最终,我想与会话进行比较并做一些事情。例如,如果会话 X 回答了问题 1 和 2,则找出其他会话也回答了问题 1 和 2,在我看来这将涉及 sql 中的自联接。所以如果这是我的目标,我应该使用多对多吗?我正在考虑替换 Session_results 模型中的一行:
questionAsked = models.ManyToManyField(Poll)
在我输入这一行并运行 python manage.py sql polls 后,我看到 django 自动为我创建了一个连接表,但该表似乎无法满足我未来的需求。我阅读了https://docs.djangoproject.com/en/1.5/topics/db/examples/many_to_many/页面,它似乎没有回答我的问题。还考虑到我想要做什么,我会使用原始 sql 查询吗?
谢谢!!