【问题标题】:Django Template / on which template I am and using IF for this templateDjango 模板/我在哪个模板上并为此模板使用 IF
【发布时间】:2013-09-15 23:57:03
【问题描述】:

有一个网站,我有 1 个 div 黑色矩形用作页脚,数据是从页脚内的数据库中提取的。

我想在我在 django 模板目录中创建的每个模板上显示此页脚,除了 INDEX.HTML 主页(模板)。如果我把它放到 BASE.HTML 中,它将无处不在,如果我将它传播到除 INDEX.HTML 之外的所有 20 个模板中,我将需要编辑每个模板以获取页脚中的数据,我不想这样做。我如何实现页脚显示在除 INDEX.HTML 之外的所有模板中,但仅使用一次来编辑页脚中的数据。是否有 django 命令或类似 IF template = index.html 隐藏页脚等类似逻辑或实现此目的的最佳方法是什么?

谢谢

【问题讨论】:

    标签: django python-2.7 django-views django-templates


    【解决方案1】:

    您可以为此使用block tag

    如果您发现自己在多个模板中复制了内容,这可能意味着您应该将该内容移动到父模板中的 {% block %}

    更多documentation here

    base.html

    {% block footer_content %}
        {# contents here #}
    {% endblock %}
    

    index.html

    {% block footer_content %}
        {# this overwrites the base footer_content to empty block #}
    {% endblock %}
    

    这将仅删除 index.html 中的内容,并在继承自 base.html 的所有其他页面上可用

    现在,如果您希望向某些页面添加更多内容,

    {% block footer_content %}
        {{ block.super }}
        {# more content here #}
    {% endblock %}
    

    【讨论】:

    • 哇,我不知道它也可以向后工作,非常感谢:)
    猜你喜欢
    • 2021-12-12
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多