2009-07-08 118 views
0

我制作了一个自定义的formwizard并将其合并到我的管理界面中。将自定义模板合并到django管理界面和会话中

我基本上采取了change_form.html和离开时的管理界面URL下:

(r'^admin/compilation/evaluation/add/$', EvaluationWizard([EvaluationForm1, EvaluationForm2])), 

它的工作原理,但管理员“会话”不会保留。我可以在没有登录到管理界面的情况下访问该页面,而像面包屑这样的管理变量不起作用。

如何将其纳入“管理界面会话”可以这么说?

感谢, 约翰

回答

1

如果您需要确保只有授权的用户访问该页面,您需要检查在您的请求处理程序的管理员用户。这将是EvaluationWizard类中的__call__方法。

基本上,管理员使用的逻辑可用于查看here。在AdminSite类中找到这个:

if not self.has_permission(request): 
    return self.login(request) 

并使用类似的逻辑或任何你需要的。您需要在__call__方法的顶部找到类似的声明。 AdminSitehas_permission方法是一种单行程,您可以按原样使用,但需要根据具体需要调整login方法。

+0

感谢您的评论。我不知道如何使用您的示例,既不确定这是否会帮助模板变量(如面包屑)发挥作用? 你可以做一个如何在FormWizard类中使用__call__方法的实际例子吗? 如果我只是重写FormWizard中的__call__方法,并且不做任何事情而只是返回它的超类,那么我得到一个错误,指出它没有回应HttpResponse对象。 – 2009-07-08 14:06:15