Django 1.9 教程 __str__ () 不工作
Django 1.9 tutorial __str__ () not working
我正在使用 Win 10 os 和 Python 3.5 尝试 Django 1.9 教程,Django 版本是 1.9。我已在 "Question" 和 "Choice" 中成功创建和存储值。在此之后,当我根据教程 django tutorial 2 将 polls/model.py 更改为 __str__()
时。我收到此错误:
>>> 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'
我的 polls\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
您的问题模型中很可能没有 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
如果您正在关注 Django 文档,那么您这边有一些错字。只需重做模型部分和 运行 makemigration 和 migrate cmd。它应该工作。
我遇到了同样的问题,然后我只是复制并粘贴了 Django 文档中的代码并且成功了。
这样做。
def __repr__ (self):
return self.title
重新启动 shell/session。
然后检查。
我也遇到了同样的问题,但后来我检查了我忘记在 __str__
中添加双引号而不是单引号 _
我正在使用 Win 10 os 和 Python 3.5 尝试 Django 1.9 教程,Django 版本是 1.9。我已在 "Question" 和 "Choice" 中成功创建和存储值。在此之后,当我根据教程 django tutorial 2 将 polls/model.py 更改为 __str__()
时。我收到此错误:
>>> 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'
我的 polls\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
您的问题模型中很可能没有 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
如果您正在关注 Django 文档,那么您这边有一些错字。只需重做模型部分和 运行 makemigration 和 migrate cmd。它应该工作。 我遇到了同样的问题,然后我只是复制并粘贴了 Django 文档中的代码并且成功了。
这样做。
def __repr__ (self):
return self.title
重新启动 shell/session。
然后检查。
我也遇到了同样的问题,但后来我检查了我忘记在 __str__
_