首页 > 科技 > 重写Django默认的AdminSite

重写Django默认的AdminSite

写在本文之前:我想绝大多数人在使用Django的时候都不会去重写AdminSite,本文只是用于扫盲,同时给自己做一个笔记。

Django自带的管理后台是django.contrib.admin.sites.AdminSite的一个实例,对于高级开发人员来说可能不能满足自身需求,此时可以通过重写AdminSite的方式对默认管理后台进行扩展。

(polls是我的应用,mysite是我的工程)

首先重写polls\admin.py文件,编写新的MyAdminSite类,用它替代默认的AdminSite:

然后重写polls\apps.py,使PollsConfig指向前面编写的MyAdminSite类:

接下来修改mysite\\urls.py,使新的URL指向MyAdminSite的实例:

最后就是在settings.py中注册新的AdminSite:

由于默认的admin类会调用autodiscovery方法查找并注册默认管理后台的模块,所有如果你的项目不需要使用这些模块的话,可以使用'django.contrib.admin.apps.SimpleAdminConfig'替代默认的'django.contrib.admin'。

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/290769.html