2010-06-25 18 views
14

numaralı telefonlarda bir değişken mi yoksa dahili etiketler ve filtreler kullanılarak djangoda bir değişken mi yoksa bir listenin içinde mi olduğunu test etmenin bir yolu olup olmadığını test ediyordu.Django şablonları: Değişkenin listede mi yoksa

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

Ben dokümanlarında görmüyorum ve eğer bir şey özel dener, ama ben zaten yapılmıştır bir şey yapmak istemiyoruz.

Teşekkür Django 1.2 olarak

cevap

29

, sadece

{% if var in the_list %} 

Eğer Python yaptığınız gibi yapabilirsiniz.

Aksi evet, özel bir filtre gerekir - bu üç astar olsa var:

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

liste gibi şablonda olabilir: '{ % 'si [' item1 ',' item2 ',' item3 ']%} ' – Sevenearths

+3

@Sevenearths içinde varsa, bunu denedim ve Django 1.5.1 itibariyle listenin ** Böyle bir deyim var. – Patrick

+0

O zaman bunu nasıl yapacağız? – laycat

0

şablondan dize, virgülle ayrılmış bir geçmek ister misiniz?

from django import template 
register = template.Library() 

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

Sonra böyle diyebilirsiniz:

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

Ayrıca değişkenler ile çalışır: Bir özel templatetag oluşturun

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