gpt4 book ai didi

python - django 模板能否找到其命名的 url,或者基本模板能否知道哪个模板正在扩展它?

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:20 24 4
gpt4 key购买 nike

在我的 URLConf 中,我对我的 URL 进行了整齐的命名,这样我就可以进行反向查找并保持一切 DRY。

我所有的模板都扩展了一个名为 base.html 的通用模板。在 base.html 中,在许多 HTML 框架中,我显示了一个登录表单。

我还有一个使用 Django 提供的 auth_views.login View 的特定 View ,它显示我的自定义模板 login.html。与所有其他模板一样,此模板扩展了 base.html 模板。

在这种情况下,我希望 base.html 模板不会显示其登录表单(login.html 模板已经在显示登录表单) .为了做到这一点,base.html 需要知道它被用来扩展 login.html,或者知道导致 base.html 的命名 URL。正在扩展的 html 的名称为 'myapp-login'

你能推荐一种方法吗?我正在考虑编写自己的 View ,该 View 将调用 auth_views.login 带有额外的上下文,其中包括 suppress_header_login_form var。基于此 var,base.html 模板可以抑制登录表单。不过,我正在尝试看看是否有更好的方法来完成此任务。

最佳答案

您可以使用模板继承和 block 来管理它。

您的 base.html 定义了一个名为 login 的 block ,它围绕着登录的 HTML - 而您的 login.html 覆盖了该 block 空版本:

基础.html:

{% block login %}
... login form here ...
{% endblock %}

{% block main %}
{% endblock %}

登录.html:

{% extends "base.html" %}

{% block login %}
{% endblock %}

{% block main %}
... real login form here ...
{% endblock %}

关于python - django 模板能否找到其命名的 url,或者基本模板能否知道哪个模板正在扩展它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7928664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com