Django后台自定义
一、AdminSite
1、AdminSite属性
AdminSite属性
| 属性 |
描述 |
| site_header |
管理页面顶部的文字,默认是‘Django管理’ |
| site_title |
<title>末尾放置的文字 |
| site_url |
‘查看网站’链接的url |
| index_title |
管理索引页顶部的文字 |
| index_template |
自定义主要索引页模版,路径字符串 |
| app_index_template |
自定义应用索引视图模版路径 |
| empty_value_display |
空值占位字符串 |
| enable_nav_sidebar |
布尔值,默认True,是否显示导航栏 |
| final_catch_all_view |
布尔值,默认True,是否添加一个总索引视图 |
| login_template |
|
| login_form |
|
| logout_template |
|
| password_change_template |
|
| password_change_done_template |
|
2、AdminSite方法
AdminSite方法
| 方法 |
描述 |
| each_context(request) |
返回一个变量字典,将其放入管理站点中每一个页面的模版上下文中 |
| has_permission(request) |
权限检测 |
| register(model_or_iterable,admin_class=None,**options) |
向管理站点注册模型 |
| unregister(model_or_iterable) |
取消注册给定的模型类 |
3、AdminSite使用
3.1 在应用的admin.py中继承AdminSite对象
app中admin.py
# 1、导入AdminSite
from django.contrib.admin import AdminSite
# 2、添加权限
from django.contrib.auth import get_user_model
# Register your models here.
# 2.1创建用户模型
User = get_user_model()
# 1.1继承后台并自定义属性
class DJMallAdminSite(AdminSite):
# Text to put at the end of each page's <title>.
# 要放在每页末尾的文本<title>站点管理 | 墨宝系统</title>。
site_title = "墨宝系统"
# Text to put in each page's <div id="site-name">.
# 要放入每个页面的 <div id=“site-name”> 的文本。
site_header = '墨宝后台管理'
# 1.2注册后台
admin_site = DJMallAdminSite(name='dadmin')
# 2.2注册用户模型
admin_site.register(User)
3.2 修改应用apps.py中的继承对象为AdminConfig,并配置default_site属性
3.3 在配置文件的INSTALLED_APPS中注册该应用
settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 注册app
'dadmin.apps.DadminConfig',
]
3.4 项目urls.py中引入url
urls.py
from django.contrib import admin
from django.urls import path
#
from dadmin.admin import admin_site
urlpatterns = [
path('admin/', admin.site.urls),
#
path('dadmin/',admin_site.urls)
]