字典未传递到模板django
我试图读取cookie并将数据传递到模板中,但它在模板上返回字符串字典未传递到模板django,django,django-views,django-templates,Django,Django Views,Django Templates,我试图读取cookie并将数据传递到模板中,但它在模板上返回字符串/cart view.py def cart(request): # exception no cookie named 'cart' try: cart = json.loads(request.COOKIES['cart']) except: cart = {} context = { 'data': [], 'cart': ca
/cart
view.py
def cart(request):
# exception no cookie named 'cart'
try:
cart = json.loads(request.COOKIES['cart'])
except:
cart = {}
context = {
'data': [],
'cart': cart,
}
for item in cart:
product_detail = ProductImage.objects.select_related(
'product'
).filter(product=item[0], place='Main Product Image')
context['data'].append(product_detail)
return render(request, 'store/cart.html', context)
我已经检查了cart
变量是否包含数据,它是否包含字典。以下是上下文
变量
{'data': [<QuerySet [<ProductImage: Product 1-22>]>], 'cart': {'1': {'unit_price': '980.00', 'quantity': 3}}}
所以希望知道这里发生了什么事,提前谢谢
更新(wierd场景)
同样的事情在另一个文件中再次发生,我尝试执行上面提到的解决方案。不幸的是,它不起作用。经过几个小时的尝试,我决定将dict
{'cart':cart,…}
的键重命名为{'crt':cart}
,它成功了。如果要在模板中传递上下文dict变量。您需要做的只是:
return render(request, 'store/cart.html', {'context' : context})
通过这个,我们将上下文传递给html模板。您可以通过以下方式检索上下文数据:
{{context.cart}}
你能用模板的片段更新问题吗?@ShivendraPratapKushwaha done。。。{{cart}}仅用于调试。您可以像“return render(request,'store/cart.html',{'context':context}”那样进行渲染,或者像{context.cart}那样在模板中进行获取。。。检查是否有效…有效:)可以检索dict,但为什么?怎么做?你能解释一下吗?
{{context.cart}}