【发布时间】:2011-12-17 05:43:14
【问题描述】:
在我的 URLConf 中,我的 URL 被整齐地命名,这样我就可以进行反向查找并保持一切干燥。
我所有的模板都扩展了一个名为base.html 的通用模板。在base.html,在很多HTML框架中,我显示了一个登录表单。
我还有一个特定的视图,它使用 Django 提供的 auth_views.login 视图,它显示了我的自定义模板 login.html。与所有其他模板一样,此模板扩展了 base.html 模板。
在这种情况下,我希望base.html 模板不会显示其登录表单(login.html 模板已经在显示登录表单)。为此,base.html 要么需要知道它正在用于扩展 login.html,要么需要知道导致 base.html 被扩展的命名 URL 的名称为 'myapp-login'。
您能建议一种方法吗?我正在考虑编写自己的视图,该视图将调用 auth_views.login 并带有额外的上下文,其中包括 suppress_header_login_form var。基于这个变量,base.html 模板可以抑制登录表单。但是,我正在尝试看看是否有更好的方法来实现这一点。
【问题讨论】:
-
也许这个问题对你有帮助:stackoverflow.com/questions/2882490/…
-
非常接近。但是,我的问题是这个特定的模板是从 TemplateView 调用的。在这种情况下,请求没有传递给模板,也没有办法通过它获取 URL。
标签: python django django-templates