Will help you retrieve the value from a dictionary with a supplied key, or the human-readable value from a choices tuple. Works as follows:
To retrieve the value of a dict:
{{ crime_rates_dict|getval:"Chicago" }}
<-- will return value of crime_rates_dict["Chicago"]
To retrieve the human-readable value from a choices tuple:
`{{ country.COUNTRIES|getval:"US" }}` <-- will return "United States" in `COUNTRIES = (("US", "United States"),)`
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | from django import template
register = template.Library()
# Utility used like {{ dict|getval:key_name }} to return value even when using variables in dictionary key
@register.filter(name='getval')
def getval(tupdict, key_name):
"""Use this in a template as follows:
To retrieve the value of a dict:
{{ crime_rates_dict|getval:"Chicago" }} <-- will return value of crime_rates_dict["Chicago"]
To retrieve the human-readable value from a choices tuple:
{{ country.COUNTRIES|getval:"US" }} <-- will return "United States" in COUNTRIES = (("US", "United States"),)
"""
value = ''
if type(tupdict) == type(()):
# Assume this is likely a "choices" list, and the friendly value should be returned
try:
value = [choice[1] for choice in tupdict if key_name in choice]
value = value.pop()
except:
value = ''
elif type(tupdict) == type({}):
# This is a regular dictionary, and the requested value should be returned
value = tupdict.get(key_name, '')
return value
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 11 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months, 3 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 6 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 7 months ago
- Help text hyperlinks by sa2812 1 year, 7 months ago
Comments
Please login first before commenting.