django 自定义ModelAdmin类

自定义ModelAdmin类


要修改模块内的东西就要自定义ModelAdmin类

把admin.py 改成下面

from django.contrib import admin
 
# Register your models here.
from books.models import *
 
class AuthorAdmin(admin.ModelAdmin):
    list_display = ('first_name','last_name','email')
    search_fields = ('first_name','last_name');
 
class BookAdmin(admin.ModelAdmin):
    list_display = ('title','publisher','publication_date')
    list_filter = ('publication_date','publisher')
    search_fields = ('title',);
    date_hierarchy = 'publication_date'
    ordering = ('-publication_date',)
    fields = ('title','authors','publisher','publication_date')
    filter_horizontal = ('authors',)
    #filter_vertical = ('authors',)
    raw_id_fields = ('publisher',)
 
admin.site.register(Publisher)
admin.site.register(Author,AuthorAdmin)
admin.site.register(Book,BookAdmin)

 


修改后的界面

说说改动的那些都有什么用。

添加的2个ModelAdmin类。它们是用来对模块实现自定义的。要在register中加入对应的ModelAdmin类。

其中:list_display用来表示模块界面中列表显示的字段的。

          search_fields用来在模块界面添加快速查询的

          list_filter  用来在模块界面添加 右边 的 过滤器的

          date_hierarchy  用来在模块界面顶部添加逐层深入的导航条

          ordering  用来设置模块界面显示的排序顺序

         fields 用来表示编辑表单界面各字段的顺序,也可以少些一些,用来屏蔽不让用户改的字段。

         filter_horizontal  效果直接见图,方便多选的。

         filter_vertical  与filter_horizontal一样,只不过是垂直显示的。

         raw_id_fields 效果见图,点击放大镜图标可以选择。

          

 

你可能感兴趣的:(Django)