/ / Django шаблон: как да се покаже dict чийто ключ има точка в него? d ['key.name'] - django, шаблони, филтър, тагове

Django шаблон: как да се покаже dict чийто ключ има точка в него? d ['key.name'] - django, шаблони, филтър, тагове

Имам речник по следния начин:

dict_name["keyname.with.manydots"]

Проблем: Не мога да направя

{{ dict_name.keyname.with.manydots }}

Знам, че не е възможно да се направи това с шаблона на Джанго .. но каква е най-добрата работа около вас?

Отговори:

4 за отговор № 1

Бихте могли да напишете a персонализиран шаблон филтър:

from django import template

register = template.Library()

@register.filter
def get_key(value, arg):
return value.get(arg, None)

И във вашия шаблон

{{ my_dict|get_key:"dotted.key.value" }}

2 за отговор № 2

Едно възможно решение е да се създаде шаблонмаркирайте речника като променлива, а ключът като аргумент. Не забравяйте да подражавате на поведението на Django по подразбиране за търсене на атрибути, които не успеят, това не трябва да хвърля грешка, затова върнете празен низ.

{{ dict_name|get_value:"keyname.with.manydots" }}

@register.filter
def get_value(dict_name, key_name):
return dict_name.get(key_name, "")