Имам речник по следния начин:
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, "")