Django条件扩展了字符串连接

时间:2015-04-07 19:21:25

标签: python django

在Django模板中,我有一个默认基础和特定的乐器 /基本模板。

我试着这样做:

{% extends instrument|yesno:instrument|add:"/base.html,base.html" %}

如果仪器存在,我将扩展“ instrument /base.html”,否则只是“base.html”。

这失败了:

TemplateDoesNotExist: instrum2/base.html,base.html

知道如何解决这个问题吗?

注意:我只从视图中传递了作为参数的乐器。我也无法将基本模板作为参数传递。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我认为坐在模板本身中的逻辑太复杂了,尽管Django模板可能有用,但我会问:

如何在视图中执行逻辑?

def get_context_data(self, **kwargs):
    instrument = #get it from somewhere here
    kwargs['base'] = "%s/base.html" % instrument if instrument else "base.html"
    return super(MyView, self).get_context_data(**kwargs)

然后你可以在模板中{% extends base %}

答案 1 :(得分:0)

也许使用include代码......

采取类似下面的方法
base.html
view.html
instrument1/base.html
instrument2/base.html

我们假设view.html是视图呈现的模板,base.html是要继承的基本工具模板......其他人则根据工具自定义。

<强> view.html

{% if instrument %}
    {% include instrument|add:'/base.html' %}
{% else %}
    {% include 'base.html' %}
{% endif %}

<强> instrument1 / base.html文件

{% extends 'base.html' %}

<强> instrument2 / base.html文件

{% extends 'base.html' %}