我想将django admin的默认网址从/ admin更改为/ djadmin,以便我可以将/ admin用于我自己的目的。
到目前为止,我所做的只是更新urls.py文件,将管理网址更改为
url(r'^djadmin/', include(admin.site.urls)),
然后添加我自己的
(r'^admin/', include('my_app.admin_urls')),
但是,当我现在导航到/ admin时,我收到以下错误
Forbidden
You do not have staff privileges.
由于我不需要这个参数,我假设它来自内部django检查。如果我更改用户以检查is_staff
标记,那么它可以正常工作并重定向到我的管理页面。
每当我导航到管理员网址时,我还需要做些什么来阻止Django检查is_staff
标志吗?
答案 0 :(得分: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
模板,删除一对is_staff
语句中有关if
的引用。