就職面接用のショッピング カート アプリを作成しようとしています。数時間後に期限が切れるのですが、うまくいきません。
どんな提案も役に立ちます。これは、面倒な作業を行う製品ビューです。
def products(request, store_subdomain):
store_db, store_products = database_selector(store_subdomain)
context = RequestContext(request)
if request.method == 'POST': #load catalog page with "item added"
product = store_products.get(pk=request.POST['product_id'])
cart = request.session.get('cart', {})
if cart.get(product):
cart['product_id'] += 1
else:
cart['product_id'] = 1
request.session['cart'] = cart
request.session.modified = True
return render_to_response('catalog.html',
{'store_name': store_db.name, 'store_products': store_products,
'message':'Item Added'}, context_instance=context)
return render_to_response('catalog.html',
{'store_name': store_db.name,
'store_products' : store_products}, context_instance=context)
そして、カートに追加する必要がある関連するテンプレート部分:
<form method="post" action="." class="cart">{% csrf_token %}
{{ form.as_p }}
<br />
Qty <input type="number" name="qty" value = "1"> </br>
<button type="submit" value="{{p.id}}" name= "product_id" />Add to Cart</button>
</form>
そして、カートを呼び出すビュー:
def shoppingcart(request, store_subdomain):
#load page of all shopping cart items
store_db, store_products = database_selector(store_subdomain)
return render_to_response('shoppingcart.html',
{'store_name': store_db.name,
'store_products': store_products,
'cart' : cart})
カートの中身を表示するテンプレートは次のとおりです。
{% for p,k in cart %}
<div class="product_image" >
<img src="{{ STATIC_URL }}images/{{p.image}}" alt={{p.name}}/> <br />
</div>
<h1><span property="v:name">{{ p.name }}</span></h1>
<br />
Price: {{ p.price|currency }} X Qty {{ k }} =
{{cart}}
Post メソッドは確実にトリガーされていますが、ショッピング カート ページ (そこにあるすべての商品が表示されるはずです) に移動すると、空になっています。