2013-01-23 52 views
1

我想將django admin的默認網址從/ admin更改爲/ djadmin,以便我可以使用/ admin用於自己的目的。在Django 1.4站點更改導致錯誤的默認管理網址

到目前爲止,所有我做的是更新urls.py文件,改變管理URL以

url(r'^djadmin/', include(admin.site.urls)), 

,再加入我自己的

(r'^admin/', include('my_app.admin_urls')), 

然而,當我現在轉到/管理我得到以下錯誤

Forbidden 

You do not have staff privileges. 

因爲我不需要這個參數,我假設來了從內部Django檢查。如果我更改用戶以檢查is_staff標誌,那麼它工作正常,並重定向到我的管理頁面。

當我導航到管理網址時,是否還需要做其他事情來阻止Django檢查is_staff標誌?

回答

0

is_staff標誌被封裝在Django管理站點的代碼中,因爲它旨在將此接口的使用限制爲僅對選定用戶(管理網站內容的用戶)的子組使用。刪除它的唯一方法是繼承Django的管理站點,這是您自己的自定義站點。

對於管理網站定製,請參閱the official documentation或其他答案,如the one I've posted previously。在AdminSite子你有重寫has_permission方法:

def has_permission(self, request): 
    return request.user.is_active 

你還需要使用自定義管理形式(AdminSite.login_form)和修改base.html模板,在一對if語句刪除有關is_staff引用。