python - Django Admin 显示对象 - 不使用 __unicode__ 或 __str__

标签 python django postgresql

我的 Django 管理面板显示的是 object 而不是对象的 self.name

我在这里经历了几个类似的问题,但似乎无法解决这个问题。 __unicode____str__ 对书籍和作者都有相同的结果。我已经更改了这些行并在每次更改中添加了新的作者/书籍,但没有更改。

MODELS.PY

from django.db import models
from django.contrib.auth.models import User


# Create your models here.

class Author(models.Model):
    name = models.CharField(max_length=100)


def __str__(self):
    return self.name


class Book(models.Model):
    auto_increment_id = models.AutoField(primary_key=True)
    name = models.CharField('Book name', max_length=100)
    author = models.ForeignKey(Author, blank=False, null=False)
    contents = models.TextField('Contents', blank=False, null=False)


def __unicode__(self):
    return self.name

I used both unicode & str interchangeably, same result.

这是按菜单/操作分类的管理面板的屏幕截图。

1st screen

1st screen

Author List

Author List

Single Author

Single Author

最佳答案

您的缩进不正确。您需要缩进代码以使其成为模型的方法。应该是:

class Author(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

如果您使用的是 Python 3,请使用 __str__ .如果您使用的是 Python 2,请使用 __unicode__,或使用 python_2_unicode_compatible 装饰器装饰您的类。更改代码后,请确保重新启动服务器以使代码更改生效。

关于python - Django Admin 显示对象 - 不使用 __unicode__ 或 __str__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39266629/

相关文章:

mysql - 在具有在全局 python2.7 下运行的预先存在的 Flask 应用程序的计算机上使用 python 3.4 virtualenv 让 Django Apache Mysql WSGI 工作

java - 如何使用存储为毫秒 Postgres 的日期的月份进行分组

django - Postgres 到 Ubuntu Docker 容器链接不起作用

python - OpenCV 重映射插值错误?

python - 使用Python打开网页

javascript - 我正在使用两个 onready() 处理程序创建然后隐藏一个 jquery 时间条目,它会导致 IE7 和 Firefox 中出现严重错误

SQL:选择最常出现的对应于不同列的值

python - python 中的正则表达式

python - 如何在 css 中为 flask 应用程序链接英雄形象

python - Django 将 Haystack 荧光笔结果传递给 View