我正在尝试使用Win 10 os和Python 3.5的Django 1.9教程,Django版本是1.9。我已在“问题”和“选择”中成功创建并存储了值。在此之后,我根据教程django tutorial 2使用__str__()
更改了民意调查/ model.py。我收到了这个错误:
>>> from polls.models import Question, Choice
>>> Question.objects.all()
Traceback (most recent call last):
File "C:\newenv\lib\site-packages\django\core\management\commands\shell.py", line 69, in handle
self.run_shell(shell=options['interface'])
File "C:\newenv\lib\site-packages\django\core\management\commands\shell.py", line 61, in run_shell
raise ImportError
ImportError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\newenv\lib\site-packages\django\db\models\query.py", line 237, in __repr__
return repr(data)
File "C:\newenv\lib\site-packages\django\db\models\base.py", line 459, in __repr__
u = six.text_type(self)
File "C:\newenv\mysite_new\polls\models.py", line 8, in __str__
return self.question_text
AttributeError: 'Question' object has no attribute 'question_text'
我的民意调查\ models.py是:
from django.db import models
class Question(models.Model):
# ...
def __str__(self):
return self.question_text
class Choice(models.Model):
# ...
def __str__(self):
return self.choice_text
答案 0 :(得分:3)
您的问题模型中很可能没有question_text
字段。您添加__str__
方法定义时可能已将其删除。
检查你是否有这个:
class Question(models.Model):
question_text = models.CharField(max_length=200) # <--- Double check you have this
def __str__(self):
return self.question_text
答案 1 :(得分:0)
如果您遵循Django文档,那么结尾处有些错字。只需重做模型零件,然后运行makemigration并迁移cmd。它应该工作。 我遇到了同样的问题,然后我仅复制并粘贴了Django文档中的代码,它就起作用了。
答案 2 :(得分:0)
执行此操作。
def __repr__ (self):
return self.title
重新启动外壳程序/会话。
然后检查。