模型字段未在 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 中的自定义列表显示字段进行列表过滤