在我的观点中,我试图用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'数组包含并添加'product'作为dict,并且当我刷新页面时也可以在网站的任何地方使用(如其他视图egshopping_cart)
问题在于,当我对页面进行刷新时,我在同一页面/视图上(如上所述),我在检索“项目”时遇到问题。另外,如果我转到另一页然后回到原始页面,“项目”中的值就会消失。此值也不适用于任何其他页面/视图。
我的模板/ html看起来像这样:
<form action="#" method="get">
<input type="submit" class="add" name="add">
<input type="submit" value="CLEAR" class="clr" name="clear">
</form>
答案 0 :(得分:0)
更改您的代码:
def shop_product(request, slug):
tshirt = Tshirt.objects.get(slug=slug)
product = {}
if(request.GET.get('add') and request.GET.get('add')=='add'):
product['name'] = tshirt.title
product['price'] = tshirt.price_reg
request.session['items'].append(product)
request.session.modified = True
if(request.GET.get('clear') and request.GET.get('add')=='clear' ):
request.session['items'] = []
request.session.modified = True
context = {'items' : request.session['items']}
return render(request, 'shop/shop_product.html', context)
然后在你的HTML中:
<form action="#" method="get">
<input type="submit" value="add" class="add" name="add">
<input type="submit" value="clear" class="clr" name="clear">
</form>
希望这对你有用。