2011-01-10 10 views
3

と仮定:Djangoで一致するリストをチェックするには?

strings = ["abc", "a", "bc"] 
str = "bc" 

は私がしたい:これはジャンゴで許可されているよう

{% if str is in strings %} 

は見えません。リスト内の値をチェックするための適切な構文またはメソッドは何ですか?

+0

この質問に賞金を追加するにはどうすればよいですか? –

答えて

4

これはGoogle App Engineで動作するアプリです。このトリックを行うカスタムフィルタを次に示します。

from google.appengine.ext.webapp import template 
from django import template as django_template 

def in_list(value, arg): 
    """ 
    Given an item and a list, check if the item is in the list. 
    Usage: 
    {% if item|in_list:list %} 
     in list 
    {% else %} 
     not in list 
    {% endif %} 
    """ 
    return value in arg 

register = template.create_template_register() 
ifinlist = register.filter(in_list) 
+0

これはテンプレートをチェックインしたときに機能しました渡されるnullのためにメソッドの上に "@ register.filter"を使用します。私は最後の2行は必要なかった –

1

プログラマは余分な単語が好きではありません。試してみてください:

{% if str in strings %} 
+0

TemplateSyntaxError、 "'文が正しくフォーマットされていない場合"を発生させます。 –

+3

@Will Merydith、@Greg Hewgill:djnago 1.2でのみ動作します。http://docs.djangoproject.com/en/dev/releases/1.2/#smart-if-tag – mouad

関連する問題