python - 如何通过名称访问python字典中的项目
问题描述
我正在使用以下代码创建购物车
`
SESSION_COOKIE_AGE=300
SESSION_EXPIRE_AT_BROWSER_CLOSE =True
@require_POST
def cart_add(request, product_id):
product = get_object_or_404(Product, id=product_id)
quantity = request.POST.get('quantity')
product_id =str(product.id)
request.session[product_id] ={"product_name":str(product.title),"price":str(product.price),"quantity":quantity}
items =request.session.items()
print(items)
return render(request, 'cart/display_cart.html', {"products":request.session})`
场景一
,当我像这样=> 将项目传递给我的视图并在模板中使用没有显示return render(request, 'cart/display_cart.html', {"products":items})
的情况下循环它。{% for item in products %}{{ item.product_name }} {% endfor %}
但是当我打印它=> print(items) 我进入dict_items([('7', {'product_name': 'Tomatoe', 'price': '15.00', 'quantity': '3'})])
我的控制台。如何打印模板中的项目
场景 2 当我像这样传递 request.session => return render(request, 'cart/display_cart.html', {"products":request.session}) 我做
{% for key, value in products.items %}
<li><a href="{{key}}">{{value}}</a></li>
{% endfor %}
在我的模板中,我得到 {'product_name': 'Tomatoe', 'price': '20.00', 'quantity': '1'}。如何使用 product_name 而不是 key 在模板中显示项目?谢谢
解决方案
items
是一个嵌套dict
利用:
{% for k, item in products.items %}
{{ item.product_name }}
{% endfor %}
推荐阅读
- javascript - 删除图像 Exif 并在 Angular 或 JS 中调整方向?
- python - 必须使用某种集合调用索引(...),传递了“电动巴士 0”
- r - 如何在ggplot中创建部分斜体轴标题
- node.js - 如何将我的 Stack Overflow 声誉添加为 GitHub 上的实时徽章?
- xaml - 在 xaml 中均匀对齐网格列
- sql - 提高查询性能的方法
- angular - 反应形式中的一些文本框没有使用 Angular 6 清除
- python - Python中的过滤器函数不复制R输出?
- angular - 在 amCharts Angular 的 createChild 中找不到 html 容器
- git - 如何丢弃我没有推送权限的分支上的提交?