在Django管理界面和会话中加入自定义模板

0 投票
1 回答
1173 浏览
提问于 2025-04-15 12:45

我做了一个自定义的表单向导,并把它放进了我的管理界面。

简单来说,我把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__ 方法的开头,你需要加上类似的语句。AdminSitehas_permission 方法非常简洁,你可以直接使用,但你需要根据自己的具体需求调整 login 方法。

撰写回答