模型字段未在 Django Admin 中显示

Posted

技术标签:

【中文标题】模型字段未在 Django Admin 中显示【英文标题】:Model field not displaying in Django Admin 【发布时间】:2013-08-28 23:55:42 【问题描述】:

我有一个托管在 heroku 上的 Django 项目

我为模型添加了一个新的 slug 字段

from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=30)
    slug = models.SlugField(unique=True)

    def __unicode__(self):
        return self.name

在 heroku 上使用南迁移它。检查了 heroku postgresDB 以及添加的字段。一切都好。

打开管理员。没有显示 slug 字段...

在 admin.py 中的 fields[] 中添加了 slug。仍然没有显示。这是admin.py

from django.contrib import admin
from models import Category

class CategoryAdmin(admin.ModelAdmin):
    fields    = ('name', 'slug')

admin.site.register(Category, CategoryAdmin).

我什至重新启动了heroku...没有变化。 可以做些什么来展示它?

【问题讨论】:

不在列表页或编辑页中显示? 显示名称字段但不显示 slug 字段... 来吧,你昨天已经问过same question了。 由于我仍然不知道的原因,我被否决了。此外,我只是在为我的问题寻找答案。 readonly_fields = ['slug'] 是否将此字段显示为只读? 【参考方案1】:

尝试使用 list_display,如下所示:

from django.contrib import admin
from models import Category

class CategoryAdmin(admin.ModelAdmin):
    fields    = ('name', 'slug')

    #list of fields to display in django admin
    list_display = ['id', 'name', 'slug']


    #if you want django admin to show the search bar, just add this line
    search_fields = ['name', 'slug']

    #to define model data list ordering
    ordering = ('id','name')

admin.site.register(Category, CategoryAdmin).

【讨论】:

【参考方案2】:

以防万一有人遇到这种情况

我的管理类继承自 UserAdmin,而它们本应继承自 admin.ModelAdmin

我不得不改变

class Model1(UserAdmin):
    ....

class Model1(admin.ModelAdmin):
    ....

【讨论】:

【参考方案3】:

我在 Django 网站上看到了解决方案:https://docs.djangoproject.com/en/3.2/ref/models/fields/#editable,使用字段的可编辑属性。

可编辑

Field.editable

如果为 False,该字段将不会显示在 管理员或任何其他 ModelForm。在模型期间它们也会被跳过 验证。默认为真。

我之前发过一张png图片,但是不知道怎么显示。

【讨论】:

您能否也添加必要的信息来回答?链接将来可能会损坏/更改

以上是关于模型字段未在 Django Admin 中显示的主要内容,如果未能解决你的问题,请参考以下文章

Django admin - 在显示的用户列表中添加一个字段

Django Admin:仅对一个模型字段使用自定义小部件

按 django admin 中的自定义列表显示字段进行列表过滤

Django 1.11 admin list_filter 在另一个模型中包含字段

根据值在 Admin 中自定义 Django 表单字段

更改列表页面上的 django admin 附加字段