在Django管理界面和会话中加入自定义模板
我做了一个自定义的表单向导,并把它放进了我的管理界面。
简单来说,我把change_form.html文件拿过来,放在了管理界面的网址下:
(r'^admin/compilation/evaluation/add/$', EvaluationWizard([EvaluationForm1, EvaluationForm2])),
它能正常工作,但管理“会话”没有保持。我可以在没有登录管理界面的情况下访问这个页面,而且像面包屑导航这样的管理变量也不工作。
我该怎么做才能把它放在“管理界面会话”下呢?
谢谢,
约翰
1 个回答
1
如果你想确保只有授权用户才能访问这个页面,你需要在请求处理程序中检查是否是管理员用户。这一部分的代码会在你的 EvaluationWizard 类中的 __call__
方法里。
简单来说,管理员使用的逻辑可以在 这里 查看。你可以在 AdminSite
类中找到相关内容:
if not self.has_permission(request):
return self.login(request)
然后你可以使用类似的逻辑,或者根据你的需求进行调整。在你的 __call__
方法的开头,你需要加上类似的语句。AdminSite
的 has_permission
方法非常简洁,你可以直接使用,但你需要根据自己的具体需求调整 login
方法。