簡體   English   中英

django從購物車中刪除所有產品

[英]django remove all products from a cart

我正在使用[django-carton] [1]

[1]: https//github.com/lazybird/django-carton將購物車功能添加到我的產品應用中。 我可以在購物車中添加產品或從購物車中刪除產品,也可以顯示購物車中的物品。 我正在嘗試找出如何清空購物車。

這是views.py:

def add(request):
    cart = Cart(request.session)
    product = Product.objects.get(id=request.GET.get('id'))
    cart.add(product, price=product.price)
    return redirect('shopping-cart-show')


def remove(request):
    cart = Cart(request.session)
    product = Product.objects.get(id=request.GET.get('id'))
    cart.remove(product)
    return redirect('shopping-cart-show')


def show(request):
    return render(request, 'shopping/show-cart.html')

...這就是我在購物車頁面上顯示產品的方式:

 {% for item in cart.items %}
    <div class="col-md-6">
      <a href="/{{item.product.id}}/">{{ item.product }}</a>
    </div>
    <div class="col-md-2">
      <p>{{ item.quantity }}</p>
    </div>
    <div class="col-md-2">
      <p>${{ item.subtotal }}</p>
    </div>
    <div class="col-md-2">
      <a href="/shopping-cart/remove/?id={{ item.product.id }}" class="btn btn-sm btn-product">Remove</a>
    </div>
    {% endfor %}

我嘗試了幾種清除購物車的方法。 我將{{cart.clear}}分配給了一個按鈕,但是這也會在刷新時清除頁面,而我試圖僅在單擊按鈕時才清除頁面。 我本來希望在沒有Java Script的情況下執行此操作,但我一直在努力尋找方法。 感謝所有的幫助。

編輯

如果有幫助,請參見urls.py:

urlpatterns = [
    url(r'^add/$', views.add, name='shopping-cart-add'),
    url(r'^remove/$', views.remove, name='shopping-cart-remove'),
    url(r'^show/$', views.show, name='shopping-cart-show'),
]
def remove(request):
    cart = Cart(request.session)
    product = Product.objects.get(id=request.GET.get('id'))
    if cart:
        cart.delete(product)
    else:
       cart = Cart(request.session)
       cart.save()
    return redirect('shopping-cart-show')

根據我的評論,這可能不是實現清空購物車的最佳方法,但是它可以工作。 這是視圖:

def clear(request):
    cart = Cart(request.session)
    product = Product.objects.all()
    cart.clear()
    return redirect('shopping-cart-show')

我還為視圖添加了網址模式。 就像我說的,它有效。 萊姆知道是否有更好的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM