'问题'对象没有属性' choice_set'

时间:2018-06-18 00:27:36

标签: python django

我一直在关注Django文档"编写你的应用教程"我一直遇到上述错误。它似乎来自这条线

selected_choice = question.choice_set.get(pk=request.POST['choice']) 

这是我的问题和选择对象:

class Questions(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date Published')
    def __str__(self):
        return self.question_text

class Choices(models.Model):
    questions = models.ForeignKey(Questions, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
    def __str__(self):
        return self.choice_text

代码与官方文档中的代码完全相同,因此我无法准确说明错误的来源

3 个答案:

答案 0 :(得分:0)

你需要用问题的外键定义Choice模型,否则django不会创建choice_set。

答案 1 :(得分:0)

“choice_set”作为Questions中的对象创建,因为Choice模型与Questions有foreignKey关系,因此对于Questions中的每个条目,可能会有一些Choice实例(Choice表中的数据行)。一般规则是模型名称的小写版本,后跟“_set”。

您的模型被称为选择复数(带有's'),因此该集合可能被称为“choice s _set”。我很确定这是你的剩余问题。

答案 2 :(得分:0)

您的班级名称为Choices,因此,如果您尝试choices_set,则可能会起作用