admin的二次开发

来源:互联网 发布:网络布线是什么意思 编辑:程序博客网 时间:2024/06/06 02:02

admin的二次开发

 

如果你使用admin只是做简单的数据库操作那简单的操作就可以满足需求。但是如果想将admin作为美观的理想的数据交互界面使用就需要进一步对admin进行二次开发。

 

admin.py中使用ModelAdmin来管理admin界面显示

 

ModelAdmin类似界面管理类,可以定义不同的显示细节。我们使用对应数据类的类名加Admin作为类名继承admin.ModelAdmin就可以对相应的数据类在admin中的显示进行设置。下面举一个例子:

 

class AuthorAdmin(admin.ModelAdmin): 

         #指定要显示的字段

list_display=('name','age', 'sex') 

 

#指定要搜索的字段,将会出现一个搜索框让管理员搜索关键词 

search_fields=('name',)           

 

#指定列表过滤器,右边将会出现一个快捷的日期过滤选项,以方便开发人员快速地定#位到想要的数据,同样你也可以指定非日期型类型的字段 

list_filter =('publication_date',) 

   

#日期型字段进行层次划分。             

date_hierarchy ='birth'   

 

#对出生日期降序排列,对年级升序            

ordering =('-birth','age')       

 

#自定义编辑表单,在编辑表单的时候 显示哪些字段,显示的属性 

fields = ('name','sex','age','birth','type') 

 

# 分组表单 

   fieldsets = ( 

('基本信息', {'fields': ('title', 'content', 'excerpt','publish_date','status', 'user', 'categories')}), 

       ('Meta Data', { 'classes':('collapse',),    #合闭隐藏具体内容

'fields': ('alias', 'keywords', 'description')

}

), 

 

 

 

 

#引入富文本编辑器的类

class Media:

         js = (

                            #核心文件

                            '/static/js/kindeditor-4.1.10/kindeditor-min.js',

                            #引入中文语言文件

                            '/static/js/kindeditor-4.1.10/lang/zh_CN.js',

                            #引入配置文件

                            '/static/js/kindeditor-4.1.10/config.js',

                   )

admin.site.register(Person,AuthorAdmin) 

 

除了基本的语法使用我们还可以在相应数据类的显示中加入第三方插件,比如上面代码中的富文本编辑器,通过引用就可以让界面显示对应中间件的效果。插件配置编写还要根据不同的中间件查看具体说明。

 

 

admin模板修改

 

admin的模板界面符合django中模板的语法。在linux下django的安装文件夹为:

/usr/local/lib/python2.7/dist-packages/Django-1.9.7-py2.7.egg/django

在这个文件夹下的contrib/admin/templates/admin中存放着admin的模板。对模板的修改可以起到修饰界面的目的。

0 0
原创粉丝点击