django - 如何在模板上打印出 django 中会话的所有内容
问题描述
我正在尝试在模板上打印出会话的内容。这是我的代码:
**views.py:**
def add_to_cart(request,pk,slug):
product = get_object_or_404( Product, pk=pk,)
product_document = {
'title': product.title,
'price': product.price,
}
request.session['cart'][str(product.id)] = product_document
print(request.session['cart'])
return render(request,'selling/cart.html')
def cart(request):
template = loader.get_template("selling/cart.html")
cart = request.session['cart']
context ={
'cart': cart,
}
return HttpResponse(template.render(context,request))
**cart.html**
{%if cart%}
{%for items in cart%}
<div class="holla3" id="holla3" style="background-image: url({{ product.productimage_set.first.product_images.url }});"></div>
<div class="alltext" id="textcontainer">
<p id="one">{{ product.title}}</p>
<p id="two">${{ product.price }}</p>
<!-- <p id="three">{{ product.product_description }}</p> -->
</div>
{% endfor %}
{% else %}
<h2>There don't seem to be any items in your cart!</h2>
{% endif%}
所以基本上我试图将 django 会话字典中的所有项目打印到模板上。
解决方案
看来你忘记了这个items
部分。
{% if cart %}
{% for items in cart %}
<div class="holla3" id="holla3" style="background-image:url({{items.product.productimage_set.first.product_images.url }});"></div>
<div class="alltext" id="textcontainer">
<p id="one">{{ items.product.title }}</p>
<p id="two">${{ items.product.price }}</p>
<!-- <p id="three">{{ items.product.product_description }}</p> -->
</div>
{% endfor %}
{% endif %}
此外,您不应该将您的 views.py 命名为与您在其中命名变量相同的名称。
推荐阅读
- python - 如何遍历两个数据帧以在第二个数据帧上找到最接近的值而不循环
- css - 再次滚动时如何防止关键帧动画重新启动?
- azure - ADF Copy Activity FTP Source 奇怪的行为
- python - 安装 dask-ml 引发“解决环境”错误
- mysql - MySQL 我无法向表中添加外键
- android - android溢出菜单项文本未显示
- javascript - 找不到 React.JS 道具
- gremlin - 找到已经与顶点连接到特定顶点ID的边,并将其与结果合并
- nginx - NGINX 入口仅在 Kubernetes AKS 上加载 html
- flutter - 将 API 返回的错误消息显示到 Flutter UI