だから私はeコマースアプリ(オンラインで食べ物を注文するため)に取り組んでおり、現在注文にアイテムを追加することはできますが、複数のアイテムを追加することはできません. 私はそれがどのように起こるか本当に理解していません。私の見解では、
def show_item(request,id):
# need to evaluate the HTTP method
if request.method == 'POST'
a = Item.objects.get(pk=id)
form = PartialOrderItemForm(request.POST,instance=a)
# check validation of posted data
if form.is_valid():
order.add_to_order(request,a)
# if test cookie worked, get rid of it
if request.session.test_cookie_worked():
request.session.delete_test_cookie()
url =urlresolvers.reverse('order_index')
# redirect to order page
return HttpResponseRedirect(url)
else:
form = PartialOrderItemForm()
request.session.set_test_cookie()
context={
'form':form,
}
return render_to_response('item.html',context,context_instance=RequestContext(request))
フォームを検証した後、ビューはアイテムの追加を担当するこのメソッドを呼び出します
def add_to_order(request,obj):
postdata = request.POST.copy()
#get quantity added, return 0 if empty
quantity = postdata.get('quantity',0)
# fetch the item or return missing page error_message
i = get_object_or_404(Item,pk=obj.id)
i.orderitem_set.all()
# get items in order
order_items = get_order_items(request)
item_in_orders = False
# check to see if item is already in order
for order_item in order_items:
if order_item.item.id == i.id:
#update the quantity if found
order_item.augment_quantity(quantity)
item_in_orders = True
if not item_in_orders:
# creat and save a new order item
oi = OrderItem()
oi.order_id = _order_id(request)
oi.quantity = quantity
oi.item = i
oi.save()
そして、ここにテンプレートの私のフォームがあります..
<form method="post" action=".">
{% csrf_token %}
{{ form.as_p }}
<br />
<input type="submit" id="submit_order" value="Add To Order" name="submit">
</form>
これについてどうすればよいかについての提案。