これは私を狂ってしまう。私はDjango-cartonのカートで、eコマースアプリを構築しています。アイテムをカートに追加すると、アイテムのIDをコンテキストから店舗に取得し、顧客がボタンをクリックしてアイテムを追加するとAjax呼び出しとビューに渡すことができます。Ajaxでdjango-cartonからアイテムを取り除く
ボタンを使用してカート内の数量を削除したり編集したりできるようにしたいと思っています。今では、削除と数量編集機能を作成しようとしています。私はアイドルのアイデアを渡す方法を理解していないために立ち往生しています。 idは項目コンテキストオブジェクトにありません。ビューのidをids = request.session['CART']
という印刷で取得できますが、現在のIDはありません。ジャンゴ・カートンのドキュメントで
self.product = product
self.quantity = int(quantity)
self.price = Decimal(str(price))
例は、この例があり、Javascriptを使用しない:
ビュー:
def remove(request):
cart = Cart(request.session)
product = Product.objects.get(id=request.GET.get('id'))
cart.remove(product)
return HttpResponse("Removed")
のURL:コンテキスト内の項目は、以下に限定されています
u`rl(r'^remove/$', 'remove', name='shopping-cart-remove'),`
私の見解では、カート内のすべてのオブジェクトのIDを取得できます
{u'meal_pk': 15, u'price': u'5', u'quantity': 39}
しかし、これは実際に役に立つように見えるしません:
私に次のオブジェクトを与えるcart = Cart(request.session)
ids = request.session['CART']
と。これは私のセッションとの最初の遭遇です。私はここでコードを読んでいますhttps://github.com/lazybird/django-carton/blob/master/carton/cart.py
カート内のアイテムを編集または削除するにはどうしたらいいですか?
おそらく愚かな質問許す - セッションで、私はすべての私の意見を使用してJSで編集し、することはできませんか?私はこういう仕組みについてとても混乱しています。 – fstopzero
セッションはバックエンドを介してのみアクセス可能です。セッション変数を更新または取得するには、ビュー/エンドポイントを作成する必要があります。上記の何が起こっているのですか?アイテムの削除ボタンをクリックすると、JQueryを使用してAjaxのDjangoビュー 'remove'を呼び出します。 Djangoは順番にビューを実行し、セッションからアイテムを削除します。そこから、クライアントがJSを介して表示しているページから項目を削除するコードを含めることができます。カートからアイテムを取り出してショッピングカートビューを再度呼び出すと、そのアイテムは表示されません。 –