包含标记的django变量替换

时间:2013-05-30 23:46:46

标签: django django-templates

我想找到一种方法来有条件地包含文件名不同的文件。在下面的例子中,我希望模板在相关时间包含para-ford.txt或para-mazda.txt。当然,此示例失败,因为模板引擎在{%include ...%}内时不会替换{{car.maker}}。

{% for car in cars %}
<p>{% include "para-{{car.maker}}.txt" %}</p>
{% endfor %}

'cars'系列中的每个项目都有一个'maker'属性,包含'ford','mazda'等。

1 个答案:

答案 0 :(得分:2)

解决此问题的一种方法是在模型上添加方法:

# models.py
class Cars(models.Model):
    maker = models.CharField(max_length=200)

    def get_maker_template(self):
        return "para-{0}.txt".format(self.maker)

# template
{% for car in cars %}
<p>{% include car.get_maker_template %}</p>
{% endfor %}
相关问题