【发布时间】:2014-10-01 13:46:29
【问题描述】:
在我看来,我正在尝试使用 Django 会话保存一些信息,所以在我的 views.py 中我有这个:
def shop_product(request, slug):
tshirt = Tshirt.objects.get(slug=slug)
request.session['items'] = []
product = {}
if(request.GET.get('add')):
product['name'] = tshirt.title
product['price'] = tshirt.price_reg
request.session['items'].append(product)
request.session.modified = True
if(request.GET.get('clear')):
request.session['items'][:] = []
request.session.modified = True
context = {'items' : request.session['items']}
return render(request, 'shop/shop_product.html', context)
我希望 'items' 数组包含并添加作为 dict 的 'product' 并且在我刷新页面时也可以在网站上的任何位置使用(如其他视图,例如shopping_cart)
问题是,当我在同一页面/视图(如上所述)上刷新页面时,我在检索“项目”时遇到问题。另外,如果我转到其他页面然后返回原始页面,则“项目”中的值消失了。此外,该值在任何其他页面/视图上均不可用。
我的模板/html 看起来像这样:
<form action="#" method="get">
<input type="submit" class="add" name="add">
<input type="submit" value="CLEAR" class="clr" name="clear">
</form>
【问题讨论】:
-
您在函数开始时明确清除项目。我认为你不想那样做。
-
是的,这是我犯的一个错误,感谢 Daniel 指出。