118π
The Django template language supports looking up dictionary keys as follows:
{{ json.key1 }}
See the template docs on variables and lookups.
The template language does not provide a way to display json[key]
, where key
is a variable. You can write a template filter to do this, as suggested in the answers to this Stack Overflow question.
21π
As @Alasdair suggests, you can use a template filter.
In your templatetags
directory, create the following file dict_key.py
:
from django.template.defaultfilters import register
@register.filter(name='dict_key')
def dict_key(d, k):
'''Returns the given key from a dictionary.'''
return d[k]
Then, in your HTML, you can write:
{% for k in json.items %}
<li>{{ k }} - {{ json.items|dict_key:k }}</li>
{% endfor %}
- [Django]-Django-allauth: Linking multiple social accounts to a single user
- [Django]-What does "'tests' module incorrectly imported" mean?
- [Django]-How do I include related model fields using Django Rest Framework?
8π
For example, to send the below dictionary
dict = {'name':'myname','number':'mynumber'}
views :
return render(request, self.template_name, {'dict': dict})
To render the value in html template:
<p>{{ dict.name }}</p>
It prints 'myname'
- [Django]-PyCharm: DJANGO_SETTINGS_MODULE is undefined
- [Django]-Troubleshooting Site Slowness on a Nginx + Gunicorn + Django Stack
- [Django]-How to run Django's test database only in memory?
5π
To overcome this problem you could try something like this:
def get_context_data(self, **kwargs):
context['cart'] = []
cart = Cart()
cart.name = book.name
cart.author = book.author.name
cart.publisher = book.publisher.name
cart.price = 123
cart.discount = 12
cart.total = 100
context['cart'].append(cart)
return context
class Cart(object):
"""
Cart Template class
This is a magic class, having attributes
name, author, publisher, price, discount, total, image
You can add other attributes on the fly
"""
pass
By this way you can access your cart something like this:
{% for item in cart %}
<div class="jumbotron">
<div>
<img src="{{item.image}}" />
<div class="book_name"> <b>{{item.name}}</b></div>
<div class="book_by"><i>{{item.author}}</i></div>
<span>Rs. {{item.price}}</span> <i>{{item.discount}}% OFF </i>
<b>Rs. {{item.total}}</b>
{% endfor %}
- [Django]-How to test auto_now_add in django
- [Django]-Referencing multiple submit buttons in django
- [Django]-In a Django QuerySet, how to filter for "not exists" in a many-to-one relationship