模型字段不在Django Admin中显示

时间:2013-08-26 13:14:10

标签: django heroku django-models django-admin

我有一个在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上使用south迁移它。检查了heroku postgresDB以及添加的字段。一切都很好。

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

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

from django.contrib import admin
from models import Category

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

admin.site.register(Category, CategoryAdmin).

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

3 个答案:

答案 0 :(得分:0)

尝试使用 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).

答案 1 :(得分:0)

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

当我的管理类应该从UserAdmin继承时,它们是从admin.ModelAdmin继承的。

我不得不改变

class Model1(UserAdmin):
    ....

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

答案 2 :(得分:0)

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

<块引用>

可编辑

Field.editable

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

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

Django website