Django 管理屏幕不按名称显示实体

Posted

技术标签:

【中文标题】Django 管理屏幕不按名称显示实体【英文标题】:Django admin screen doesn't show entities by name 【发布时间】:2015-06-15 03:12:11 【问题描述】:

在 Django 中,我在模型中创建了一个名为 User 的实体,当我让它在管理页面中可见时,它仅显示为用户对象而不是 id 或名称,我该如何更改?

如何将其更改为直观的东西?喜欢用户的 ID 或名称?

models.py 显示:

class User(models.Model):
    user_id = models.CharField(primary_key=True, max_length=200)
    name = models.CharField(max_length=200)
    phone_number = models.CharField(max_length=200)
    user_password = models.CharField(max_length=20)
    email = models.CharField(max_length=200)
    category = ( ('A','First AC'), ('B','Second AC'), ('C','Third AC'), ('D','Sleeper') )

另外,为什么类别中的选项没有出现在添加用户屏幕上?

此应用[名为“数据”] 的 admin.py 有:

from django.contrib import admin    
from data.models import User
admin.site.register(User)

【问题讨论】:

【参考方案1】:

在您的模型中包含一个__str__ method,它会返回您要显示的字符串:

class User(models.Model):
    user_id = models.CharField(primary_key=True, max_length=200)
    name = models.CharField(max_length=200)
    phone_number = models.CharField(max_length=200)
    user_password = models.CharField(max_length=20)
    email = models.CharField(max_length=200)
    category = ( ('A','First AC'), ('B','Second AC'), ('C','Third AC'), ('D','Sleeper') )

    def __str__(self):
        return ''.format(self.user_id)

【讨论】:

对于 Python 3? docs.djangoproject.com/en/1.8/ref/models/instances/…

以上是关于Django 管理屏幕不按名称显示实体的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 管理屏幕中删除“添加另一个”

在 Django 管理屏幕中删除“添加另一个”

Django 管理多个APP且在后台显示 自定义APP的名称

在标题 Django 管理工具中隐藏 Django 徽标/名称

如何在 django、python 中更改管理字段名称

django“类名”对象显示而不是名称