Django newb在这里,处理django民意调查教程并尝试添加一个能够跟踪民意调查结果的模型:
# 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民意调查后,我看到django自动为我创建了一个连接表,但该表似乎没有满足我未来的需求。 我看了https://docs.djangoproject.com/en/1.5/topics/db/examples/many_to_many/页面,似乎没有回答我的问题。 还有我想做的,我会使用原始的SQL查询吗?
谢谢!