2016-01-20 100 views
0

,我在我的模板之一这样做:条件变量赋值

{% if activite.travel %} 
    {% with activite.travel.personne as personne %} 

     {% include 'includes/person_detail.html' %} 

    {% endwith %} 
{% endif %} 
{% if activite.relation %} 
    {% with activite.relation.src as personne %} 

     {% include 'includes/person_detail.html' %} 

    {% endwith %} 
{% endif %} 

注:我可以有更多的字段进来activite这就是为什么我不这样做“else”,而是两个独立的“if ”。

我想这样做:

{% if activite.travel %} 
    {% set personne=activite.travel.personne %} 
{% elsif activite.relation %} 
    {% set personne=activite.relation.src %} 
{% endif %} 
{% include 'includes/person_detail.html' %} 

有没有办法做到这一点模板

+1

看一看[包含标签(https://docs.djangoproject.com/en/1.9/howto/custom-模板标签/#包括标签)。您将能够将很多逻辑转移到Python代码中。你应该能够将模板简化为'{%person_detail activite%}'(这有助于你的[其他问题]](http://stackoverflow.com/questions/34896088/best-practice-for-include-templates )以及。 – Alasdair

回答

2

不正是......但你可以使用with内的include

{% if activite.travel %} 
    {% include 'includes/person_detail.html' with personne=activite.travel.personne %} 
{% elif activite.relation %} 
    {% include 'includes/person_detail.html' with personne=activite.relation.src %} 
{% endif %}