Django e-commerce part67 Checkout Finalize View
注文を確定するviewの作成
carts/views.py にcheckoutfinalview classを追記する。
class CheckoutFinalView(View): def post(self, request, *args, **kwargs): return redirect("checkout") def get(self, request, *args, **kwargs): return redirect("checkout")
urls.py に設定する
url(r'^checkout/final/$', CheckoutFinalView.as_view(), name='checkout_final'),
checkout_view.htmlに追記
<form method='POST' action="{% url 'checkout_final' %}">{% csrf_token %} <input type='hidden' name='payment_token' value='ABC' /> <p><b><button type='submit'>注文を確定する</button></b> </p>
ポイント
- input payment_tokenは、支払う時のtokenを自動で入力するためのtagだと思われる。
carts/views.py
class CheckoutFinalView(View): def post(self, request, *args, **kwargs): print (request.POST.get("payment_token")) return redirect("checkout")
注文確定するボタンをクリックすると、ターミナルに、ABC というpayment_tokenのvalueが表示されるようになる。
carts/views.pyにさらに追記する。
class CheckoutFinalView(CartOrderMixin, View): def post(self, request, *args, **kwargs): order = self.get_order() if request.POST.get("payment_token") == "ABC": print (order.cart.items.all()) return redirect("checkout")
payment_tokenが指定した文字列と等しい場合に、orderのitemを表示する。