0

だから私は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>

これについてどうすればよいかについての提案。

4

1 に答える 1

0

問題は私のインデントにあり、pdbでしか見つけることができませんでした。 pdb本当の取引です

于 2013-02-08T12:26:58.850 に答える