0

次のような辞書から値を抽出する単純なフィルターを作成するにはどうすればよいですか。

PHANTOM_TYPE_CHOICES = (
    (1, 'Type 1'),
    (2, 'Type 2'),
)

Django 1.4で動作します:

私はこれを試しました:

from django.template import Library    
register = Library() 
    ...

def get(d, key):
    return d.get(key, '')

register.filter(key)

..しかし、それは動作しません! (次のエラーが表示されます:「関数」オブジェクトには属性「フィルター」がありません)

何か案は?

4

2 に答える 2

1

コード例では、メソッド「key」を指すフィルターを登録しようとしていますが、メソッドの名前は「get」です。

交換

register.filter(key)

register.filter(get)

またはデコレータを使用します

@register.filter()
def get(d, key):
    return dict(d).get(key, '')
于 2012-08-06T15:44:55.633 に答える
1

やってみました:

register.filter('key', get)
于 2012-08-06T15:15:39.620 に答える