Как можно реализовать метод disptach в представлениях на основе функций в django
Я начал новый проект и пытаюсь сделать следующее: Требуется вход в систему для оформления заказа на сайте Ecommerce.
Если не залогинен, перенаправлять страницу на /login/?next=/checkout/
.
Как здесь можно реализовать метод отправки :
views.py
checkout
def checkout(request):
form = CheckoutForm(request.POST or None)
cart_id = request.session.get("cart_id", None)
if cart_id:
cart_obj = Cart.objects.get(id=cart_id)
if form.is_valid():
form.instance.cart = cart_obj
form.instance.subtotal = cart_obj.total
form.instance.discount = 0
form.instance.total = cart_obj.total
form.instance.order_status = "Order Received"
del request.session['cart_id']
form.save()
form=CheckoutForm()
return redirect("/")
else:
cart_obj = None
return render(request,"checkout.html",{'cart':cart_obj,'form':form})
login
def login(request):
error=""
form = CustomerLoginForm(request.POST or None)
if form.is_valid():
uname = form.cleaned_data.get("username")
pword = form.cleaned_data.get("password")
usr = authenticate(username=uname, password=pword)
if usr is not None and Customer.objects.filter(user=usr).exists():
auth_login(request, usr)
return redirect("/")
else:
error="Invalid credentials"
return render(request,"login.html", {"form": form, "error": error})