我一直在关注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
代码与官方文档中的代码完全相同,因此我无法准确说明错误的来源
答案 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,则可能会起作用