Python Django轮询教程第2部分,使用API部分

Python Django轮询教程第2部分,使用API部分,python,django,Python,Django,我刚开始学习Django民意测验教程,在本教程第2部分的API部分遇到了一些困难 如本文所述,我将models.py中的代码更改为: from django.db import models from django.utils.encoding import python_2_unicode_compatible @python_2_unicode_compatible class Question(models.Model): def __str__(self): r

我刚开始学习Django民意测验教程,在本教程第2部分的API部分遇到了一些困难

如本文所述,我将models.py中的代码更改为:

from django.db import models
from django.utils.encoding import python_2_unicode_compatible

@python_2_unicode_compatible
class Question(models.Model):
    def __str__(self):
        return self.question_text

@python_2_unicode_compatible
class Choice(models.Model):
    def __str__(self):
        return self.choice_text

现在,根据教程,在shell中键入
Question.objects.all()
应该返回
[您使用的是哪个版本的Python?
向类中添加特殊的repr方法,如下所示:

    def __repr__(self):
        return 'Question: ' + self.question_text

确保在添加
\uu str\uuu
方法后重新启动了shell。我是否遗漏了什么?我没有看到那些模型中定义的
问题文本
选择文本
字段……非常感谢您的回答,Alaisdair。不幸的是,重新启动后我仍然有同样的问题。您使用的是python 3吗?不,我正在使用Python2您不必重写
\uuuuRepr\uUu
-Django模型已经是一个
\uuuRepr\uUu
模型,该模型将包含
\uUu str\uUu
的结果。严格来说,repr应该给出适用于重新创建对象的输出,但我不确定您是否需要从Django shell中的字符串重新创建复杂对象。因此我认为它不是糟糕。