Skip to main content
 首页 » 编程设计

python之Django 1.9 教程 __str__ () 不工作

2024年08月23日28sky-heaven

我正在尝试使用 Win 10 操作系统和 Python 3.5 的 Django 1.9 教程,Django 版本是 1.9。我已经成功地在“问题”和“选择”中创建并存储了值。在此之后,当我根据教程 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