在admin中,我看到“App_name对象”,但不是实际的对象名称

时间:2013-09-10 19:40:00

标签: django

所以,我通过这个http://mherman.org/blog/2012/12/30/django-basics/教程学习django,我有一个问题。

我在数据库中添加了几本书,但在管理站点中我只看到了“App_name对象”。在我的情况下,我只看到单词列表“书籍对象”,“书籍对象”,“书籍对象”,实际上我应该看到“战争与和平”,“勇敢的新世界”,“杀死一只知更鸟”。

那么,你知道我的应用程序出了什么问题吗?

谢谢;)

已编辑:添加我的models.py代码

from django.db import models

class Books(models.Model):
    title = models.CharField(max_length=150)
    author = models.CharField(max_length=100)
    read = models.CharField(max_length=3)

    def __unicode__(self):
        return self.title + " / " + self.author + " / " + self.read

我找到了答案:

  

Django 1.5对Python 3有实验支持,但Django 1.5   教程是为Python 2.X编写的:

     

本教程是为Django 1.5和Python 2.x编写的。如果是Django   版本不匹配,您可以参考您的版本的教程   Django或更新Django到最新版本。如果你正在使用   Python 3.x,请注意您的代码可能需要与其中的代码不同   教程,你应该继续使用本教程   知道你在使用Python 3.x做什么。

     

在Python 3中,您应该定义一个 str 方法而不是一个    unicode 方法。有一个装饰器python_2_unicode_compatible可以帮助你编写在Python 2和3中工作的代码。

     

@ python_2_unicode_compatible class Poll(models.Model):       question = models.CharField(max_length = 200)       pub_date = models.DateTimeField('date published')

def __str__(self):
    return self.question For more information see the section str and unicode methods in the Porting to Python 3 docs.

1 个答案:

答案 0 :(得分:1)

您尚未定义(或错误地)__unicode__()模型的Books方法:

  

5。接下来,打开models.py文件并添加这两行代码 -

 def __unicode__(self):
     return self.title + " / " + self.author + " / " + self.read

仅供参考,引自docs

  

只要在一个上调用unicode(),就会调用__unicode__()方法   宾语。 Django使用unicode(obj)(或相关函数,str(obj))   在许多地方。 最值得注意的是,要显示一个对象   Django管理站点并将其作为值插入到模板中   显示一个对象。因此,你应该总是回报一个好的,   来自__unicode__()的模型的人类可读表示   方法

相关问题