在Django 1.4站点中更改默认管理URL导致错误

时间:2013-01-23 15:15:44

标签: django django-admin

我想将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标志吗?

1 个答案:

答案 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的引用。