gpt4 book ai didi

Django 条件模板继承

转载 作者:行者123 更新时间:2023-12-04 06:55:49 24 4
gpt4 key购买 nike

我有一个模板,它显示带有指向我网站其他部分的超链接的对象元素。我还有另一个函数可以显示同一对象的过去版本。在这个显示中,我不想要超链接。

我假设我无法动态关闭超链接,因此我将两个版本都包含在同一个模板中。我使用 if 语句来显示超链接版本或纯文本版本。我更喜欢将它们保存在同一个模板中,因为如果我需要更改其中一个的格式,很容易将其应用到另一个模板中。

该模板扩展了 framework.html。框架有一个面包屑系统,它扩展了 base.html。 Base 有一个简单的顶部菜单系统。

所以这是我的困境。查看标准超链接数据时,我想查看顶部菜单和面包屑。但是在查看过去版本的纯文本数据时,我只想要数据,没有菜单,没有面包屑。鉴于我目前的设计,我不确定这是否可行。我尝试让框架继承主模板,以便我可以选择调用框架(并显示面包屑)或模板本身,从而跳过面包屑,但我希望 framework.html 也可用于其他模板。如果 framework.html 扩展了特定模板,我将无法在其他模板中显示它。

我尝试编写一个 if 语句,该语句将分别显示 base.html 和 framework.html 中的 top_menu 块和 nav_menu 块。这将覆盖它们的块并允许我以 if 为条件关闭这些元素。不幸的是,它似乎不是有条件的。如果块元素完全在模板中,被 if 或 not 包围,我就会丢失菜单。

我想过使用 {% include %} 来获取面包屑和拆分的顶部菜单。但在这种情况下,我将不得不一直包含它。不再继承。鉴于我的要求,这是最好的选择吗?

最佳答案

从这里:Any way to make {% extends '...' %} conditional? - Django

可以这样做:

{% extends ajax|yesno:"ajax_base.html,main_base.html" %}

或者:
{% extends a_variable_containing_base_template_name %}

哪个最适合你。

问候;

关于Django 条件模板继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2575282/

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