在Django admin 1.9

时间:2016-02-18 20:31:52

标签: django django-admin

我已经注册了一些模型以显示在管理区域中,但我希望隐藏一些字段。

作为一个例子,我有一个TeachingClasses模型,其名为“Status”的BooleanField根据类是否打开而设置为True或False。但这是在应用程序的其他地方设置的。当有人想要创建一个新的课程时,不需要在管理区域中显示该字段。

因此,有没有办法在管理区域中隐藏该字段?

我尝试将此添加到应用程序admin.py文件中,但它没有做任何事情

from django.contrib import admin

class MyModelAdmin(admin.ModelAdmin):
    class TeachingClasses:
        exclude = ('Status',)

但它不起作用?

如果这是正确的方法有任何线索吗?

我的模特:

class TeachingClasses(models.Model):
    name = models.Charfield('Class Name',max_lenght=64)
    [...]
    status = models.BooleanField('Status',default=True)

2 个答案:

答案 0 :(得分:13)

您所做的不是正确的语法,您需要:

class TeachingClassesAdmin(admin.ModelAdmin):
    exclude = ('status',)

admin.site.register(TeachingClasses, TeachingClassesAdmin)

Django doc about how to use exclude

答案 1 :(得分:0)

在admin.py中:

class TeachingClassesAdmin(admin.ModelAdmin):
    list_display = ('name',)  # plus any other fields you'd like to display 
admin.site.register(TeachingClasses, TeachingClassesAdmin)`