как мне получить другие элементы из моего сеанса в django и передать сеанс как словарь в моей cart_page.html
мой сеанс:
{'3': {'quantity': 1, 'price': 4.0, 'totalitem': '4.00'}, '1': {'quantity': 1, 'price': 30.0, 'totalitem': '30.00'}}
вид.py:
return render(request, 'cart/cart_page.html', {'itens': itens})
но когда я сделаю:
{% for item in itens %}
{{item}}
{% endfor %}
в моем {{item}} есть только 3 и 1, как я могу получить внутри него количество и цену?
🤔 А знаете ли вы, что...
В Python есть инструменты для тестирования кода, такие как библиотека unittest.
Здесь используется цикл, на каждой итерации нужное значение берется из вложенного словаря from value и проверяется на наличие с помощью:
{% if value.quantity or value.price %}
шаблоны (cart_page.html)
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8"/>
</head>
<body>
{% for key, value in itens.items %}
{% if value.quantity or value.price %}
{{ 'key ='}} {{ key }}<br>
{{ 'quantity ='}} {{ value.quantity }}<br>
{{ 'price ='}} {{ value.price }}<br>
{% endif %}
{% endfor %}
</body>
</html>
urls.py
urlpatterns = [
path('city/', city),
]
просмотры.py
def city(request):
itens = {'3': {'quantity': 1, 'price': 4.0, 'totalitem': '4.00'}, '1': {'quantity': 1, 'price': 30.0, 'totalitem': '30.00'}}
return render(request, "cart/cart_page.html", {"itens": itens})
Вывод
key = 3
quantity = 1
price = 4.0
key = 1
quantity = 1
price = 30.0
в качестве альтернативы вы можете прочитать значения из вложенного словаря без цикла, как показано ниже:
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8"/>
</head>
<body>
{{'3 key'}} {{'quantity ='}} {{itens.3.quantity}} {{'price ='}} {{itens.3.price}}<br>
{{'1 key'}} {{'quantity ='}} {{itens.1.quantity}} {{'price ='}} {{itens.1.price}}<br>
</body>
</html>