32đź‘Ť
âś…
There is no clean way to do this with the built-in tags. Trying to do something like:
{{ a.'Restaurant Name'}} or {{ a.Restaurant Name }}
will throw a parse error.
You could do a for loop through the dictionary (but it’s ugly/inefficient):
{% for k, v in your_dict_passed_into_context %}
{% ifequal k "Restaurant Name" %}
{{ v }}
{% endifequal %}
{% endfor %}
A custom tag would probably be cleaner:
from django import template
register = template.Library()
@register.simple_tag
def dictKeyLookup(the_dict, key):
# Try to fetch from the dict, and if it's not found return an empty string.
return the_dict.get(key, '')
and use it in the template like so:
{% dictKeyLookup your_dict_passed_into_context "Restaurant Name" %}
Or maybe try to restructure your dict to have “easier to work with” keys.
👤Sam Dolan
16đź‘Ť
You can use a custom filter as well.
from django import template
register = template.Library()
@register.filter
def get(mapping, key):
return mapping.get(key, '')
and within the template
{{ entry|get:"Restaurant Name" }}
👤Tugrul Ates
- [Django]-MySQL vs PostgreSQL? Which should I choose for my Django project?
- [Django]-Django-allauth social account connect to existing account on login
- [Django]-What's the cleanest, simplest-to-get running datepicker in Django?
Source:stackexchange.com