2010-06-25 15 views
14

यह सोच रहा था कि क्या एक चर के अंदर एक चर है या टैग और फ़िल्टर में निर्मित डीजेंगो में निर्देश है कि परीक्षण करने का कोई तरीका है या नहीं।Django टेम्पलेट्स: परीक्षण चर या सूची में है

Ie: {% if var|in:the_list %}

मैं डॉक्स में इसे देख नहीं है, और यदि नहीं कुछ कस्टम प्रयास करेगा, लेकिन मैं कुछ है कि पहले से ही किया गया है करने के लिए नहीं करना चाहती।

धन्यवाद

उत्तर

29

Django 1.2 में, आप बस

{% if var in the_list %} 

आप अजगर में होगा के रूप में कर सकते हैं।

अन्यथा हाँ, यदि आप कस्टम फ़िल्टर की आवश्यकता होगी - यह एक तीन लाइनर हालांकि:

@register.filter 
def is_in(var, obj): 
    return var in obj 
+3

सूची की तरह टेम्पलेट में हो सकता है: '{ % अगर var में '' item1 ',' item2 ',' item3 ']%} ' – Sevenearths

+3

@ सेवनवेर्थ्स मैंने अभी कोशिश की है और यह पुष्टि कर सकता है कि, Django 1.5.1 के रूप में, सूची ** को ** में परिभाषित नहीं किया जा सकता 'अगर' इस तरह का बयान। – Patrick

+0

हम इसके बारे में कैसे करेंगे? – laycat

0

एक अल्पविराम टेम्पलेट से स्ट्रिंग अलग पारित करने के लिए करना चाहते हैं?

from django import template 
register = template.Library() 

@register.filter 
def in_list(value, the_list): 
    value = str(value) 
    return value in the_list.split(',') 

फिर आप इसे इस तरह कॉल कर सकते हैं:

{% if 'a'|in_list:'a,b,c,d,1,2,3' %}Yah!{% endif %} 

यह भी चर के साथ काम करता है: एक कस्टम templatetag बनाएं

{% if variable|in_list:'a,b,c,d,1,2,3' %}Yah!{% endif %} 
संबंधित मुद्दे