Как можно реализовать метод 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})
Вернуться на верх