我一直在跟踪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代码与官方文档中的代码完全一样,所以我无法确切地知道错误来自何处
发布于 2018-06-18 01:10:17
"choice_set“是作为问题中的对象创建的,因为选项模型与问题有foreignKey关系,因此对于问题中的每个条目,可能会有一些选择实例(选项表中的数据行)。一般规则是模型名称的小写版本,后面跟着"_set“。
您的模型称为选择复数(带有's'),因此该集合可能称为"choices_set".我很确定这就是你的问题所在。
发布于 2018-06-18 00:33:33
您需要用外键定义选择模型,否则django将不会创建choice_set。
发布于 2020-03-21 23:52:34
你的类名是选择,所以如果你尝试choices_set,事情可能会起作用
https://stackoverflow.com/questions/50901465
复制相似问题