在我的URLConf中,我的网址名字很整齐,所以我可以进行反向查找并保持干净。
我的所有模板都扩展了一个名为base.html
的通用模板。在base.html
中,在很多HTML框架中,我显示了一个登录表单。
我还有一个特定的视图,它使用Django提供的auth_views.login
视图,该视图显示我的自定义模板login.html
。与所有其他模板一样,此模板扩展了base.html模板。
在这种情况下,我希望base.html
模板不会显示其登录表单(login.html
模板已显示登录表单)。为了做到这一点,base.html
要么知道它被用于扩展login.html
,要么知道导致base.html被扩展的命名URL的名称为{{1} }}
你能建议一种方法吗?我正在考虑编写自己的视图,该视图将使用包含'myapp-login'
var的额外上下文调用auth_views.login
。基于此var,suppress_header_login_form
模板可以禁止登录表单。但是,我试图看看是否有更好的方法来实现这一目标。
答案 0 :(得分:4)
您可以使用模板继承和阻止来管理它。
您的base.html
定义了一个名为login
的块,它围绕着用于登录的HTML - 而您的login.html
会使用空版本覆盖该块:
base.html文件:
{% block login %}
... login form here ...
{% endblock %}
{% block main %}
{% endblock %}
的login.html:
{% extends "base.html" %}
{% block login %}
{% endblock %}
{% block main %}
... real login form here ...
{% endblock %}