Основываясь на ответе eviltnan, его фильтр вызовет исключение, если key
не является ключом dict
.
Фильтры никогда не должны вызывать исключения, но должны изящно выходить из строя . Это более надежный / полный ответ:
@register.filter
def keyvalue(dict, key):
try:
return dict[key]
except KeyError:
return ''
По сути, это будет делать то же самое, что и dict.get(key, '')
в коде Python, и также может быть написано таким образом, если вы не хотите включать блок try / исключением, хотя это более явно.