gpt4 book ai didi

django - 覆盖 Django 中的内部模板 block

转载 作者:行者123 更新时间:2023-12-02 00:34:07 25 4
gpt4 key购买 nike

我有以下模板结构(为清楚起见进行了简化):

base1.html:

<html>
<head>{% block head %}{% endblock %}</head>
<body>{% block body %}{% endblock %}</body>
</html>

base2.html:

{% extends "base1.html" %}
{% block head %}
<meta .... />
<title .... />
css includes etc.
{% endblock %}
{% block body %}
{% block header %}{% endblock %}
{% block featured %}{% endblock %}
{% block navigation %}{% endblock %}
{% block content %}{% endblock %}
{% block footer %}{% endblock %}
{% endblock %}

还有 base3.htmlbase4.html,它们进一步详细化了之前基本模板(此处未显示)中定义的通用主体结构。最后一个模板扩展 base4.html,用具体内容覆盖 block (标记由基本模板处理)。

问题是:我有两个模板:ma​​in.htmlarticle.html,它们都扩展了 base4.html。但在 article.html 中,我希望 base2.html 中定义的正文 block 的顺序不同(featured block 在 之后导航)。我怎样才能做到这一点?或者如何重构模板的结构以使其成为可能?覆盖顶级模板中的 block body 不起作用。

最佳答案

我认为您不会有任何运气。一个简单的解决方案可能是有一个 base2.html 查看的可选变量,它确定备用顺序。事实上,您甚至可以在 article.html 模板本身中定义此变量的存在。我没试过这个,但类似下面的东西可能会起作用:

{% with alternate_order=1 %}
{% include base4.html
{% endwith %}

关于django - 覆盖 Django 中的内部模板 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5405285/

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