1. 程式人生 > >django admin 修改原生模板,路徑覆蓋,路徑訪問許可權控制,

django admin 修改原生模板,路徑覆蓋,路徑訪問許可權控制,

(1)修改原生模板

admin管理系統的模板路徑預設為 /usr/lib64/python2.7/site-packages/django/contrib/admin/templates

static靜態檔案目錄為 /usr/lib64/python2.7/site-packages/django/contrib/admin/static

操作:

1、複製 /usr/lib64/python2.7/site-packages/django/contrib/admin/templates目錄下的檔案到 當前專案的根目錄下

2、修改settings.py檔案,找到TEMPLATES,修改DIRS屬性

'DIRS': [BASE_DIR+"/templates",],


其中BASE_DIR為

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
此時,admin會先在當前專案目錄下尋找模板,沒有才會去 /usr/lib64/python2.7/site-packages/django/contrib/admin/templates下找

(2)路徑訪問許可權

在自定義的controller的方法上加入@login_required(redirect_field_name='',login_url='/admin/login/'),如下

# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.contrib.auth.decorators import login_required #django使用者認證
@login_required(redirect_field_name='',login_url='/admin/login/')
def aaa(request):
    context = {}
    return render(request, 'index.html', context)

(3)覆蓋admin原來的訪問路徑

1、在urls.py中新增一條規則,並加在admin的路徑前,如覆蓋admin/back/siteinfo/ 路徑,如下

urlpatterns = [
    url(r'^admin/back/siteinfo/', backcontroller.aaa),
    url(r'^admin/', admin.site.urls),
]
2、在自定義的backcontroller.py中建立aaa方法即可