[英]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.