繁体   English   中英

Django 管理员显示 Post 对象代替标题

[英]Django admin shows Post object in lieu of title

对 Django 真的很陌生,所以请耐心等待 :) 我遇到了在 Django 管理中显示帖子标题的问题。

我在 Python 3 中都尝试过

class Post(models.Model):
    title = models.TextField(max_length=100)
    text = models.TextField(max_length=10000)
    tags = models.TextField(max_length=300)
    comments = models.TextField(max_length=400)

def __str__(self):
   return self.title

和 Python 2

class Post(models.Model):
    title = models.TextField(max_length=100)
    text = models.TextField(max_length=10000)
    tags = models.TextField(max_length=300)
    comments = models.TextField(max_length=400)

def __unicode__(self):
    return self.title

但不幸的是,在 Django 管理员中,我在帖子列表中看到了“发布对象”

在此先感谢您的帮助。

也许你可以试试这个:

from django.utils.encoding import python_2_unicode_compatible

@python_2_unicode_compatible
class Post(models.Model):
    title = models.CharField(max_length=255)
    text = models.TextField(max_length=10000)
    tags = models.TextField(max_length=300)
    comments = models.TextField(max_length=400)

    def __str__(self):
        return self.title

对于那些可能在我之后来到这里的人,您必须在模型类中添加此方法。

def __str__(self):
    return self.title

确保它缩进正确,否则它可能无法工作。

将您的帖子模型添加到管理站点。 编辑应用程序的 admin.py 文件,使其看起来像这样:

from django.contrib import admin

from .models import Post
admin.site.register(Post)

管理员有许多用于自定义检查文档的钩子

每当您查询 Person 对象时,都无法让 Django 返回一个 MyPerson 对象。 Person 对象的查询集将返回这些类型的对象。 代理对象的全部意义在于,依赖原始 Person 的代码将使用这些对象,而您自己的代码可以使用您包含的扩展(无论如何其他代码都不会依赖)

class Person(models.Model):
    name = models.CharField(max_length=128)

    def __str__(self):
        return self.name

了解更多

对于那些来的人,请确保帖子是小写的。 之后再次进行迁移。

确保 name='post' 不是 'Post'...

migrations.AlterModelOptions( name='post',

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM