2014-02-26 141 views
0

如何鏈接模板中的「添加」過濾器?django:模板鏈接添加過濾器

這不起作用,什麼也不顯示:

{% with obj_ids=obj1.pk|add:"-"|add:obj2.pk %} 
    <td>{{ obj_ids}}</td> 
{% endwith %} 

雖然有隻是一個附加的工作原理:

{% with obj_ids=obj1.pk|add:obj2.pk %} 
    <td>{{ obj_ids}}</td> 
{% endwith %} 

感謝

+0

這可能是不可能的。我認爲在視圖中而不是在模板中執行它可能是個好主意。如果有的話,期待看到解決方案。 – Mutant

回答

0

如果一個工程,用2個withs必須工作太包裝?

{% with obj_ids=obj1.pk|add:"-" %} 
    {% with obj_ids_2=obj_ids|add:obj2.pk %} 
     <td>{{ obj_ids_2 }}</td> 
    {% endwith %} 
{% endwith %} 

這種事情就是爲什麼我喜歡Jinja Django的模板。安裝棺材,你可以這樣做:

{{ '%s-%s' % (obj1.pk, obj2.pk) }} 
{{ '-'|join([obj1.pk, obj2.pk]) }} 

更可讀,仍然保持與視圖/模板分離。

0

對,Jinja看起來更適合這種事情。

與此同時,我創建了一個自定義過濾器,但是我無法使用* args使它與幾個參數一起工作,所以我必須調用它兩次。

@register.filter(name='concat') 
def concat(value, arg): 
    return '{}{}'.format(value, arg)