4

我有一个托管在 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...没有变化。可以做些什么来展示它?

4

3 回答 3

8

尝试使用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).
于 2019-08-25T14:30:25.580 回答
0

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

可编辑

Field.editable

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

我之前发布过一张png图片,但我不知道如何显示它。

Django 网站

于 2021-05-15T10:01:36.473 回答
0

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

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

我不得不改变

class Model1(UserAdmin):
    ....

class Model1(admin.ModelAdmin):
    ....
于 2020-04-23T20:53:57.363 回答