我有一个在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重启......没有变化。 可以做些什么来展示它?
答案 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图片,但是不知道怎么显示。