我想找到一种方法来有条件地包含文件名不同的文件。在下面的例子中,我希望模板在相关时间包含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'等。
答案 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 %}