Python Django:如何在Ajax上用上下文呈现特定的HTML

Python Django:如何在Ajax上用上下文呈现特定的HTML,python,django,Python,Django,在我的项目中,在通过PayPal付款后,我尝试根据以下视图将其重定向到具有特定上下文的HTML页面: def payment_complete(request): body = json.loads(request.body) order = Order.objects.get( user=request.user, ordered=False, id=body['orderID']) payment = Payment( user=req

在我的项目中,在通过PayPal付款后,我尝试根据以下视图将其重定向到具有特定上下文的HTML页面:

def payment_complete(request):
    body = json.loads(request.body)
    order = Order.objects.get(
        user=request.user, ordered=False, id=body['orderID'])
    payment = Payment(
        user=request.user,
        stripe_charge_id=body['payID'],
        amount=order.grand_total()
    )
    payment.save()

    order.payment = payment
    order.ordered = True
    order.ref_code = create_ref_code()
    order.save()
    messages.success(request, "Your Order was Successful ! ")
    return render(request, "order_completed.html", {'order': order})  <------------------------
还有,我试过了,但没用

window.location.href = 'core:payment-complete';
这里是完整的贝宝上批准脚本

        onApprove: function(data, actions) {
            return actions.order.capture().then(function(details) {
                console.log(details);
                sendData();
                function sendData() {
                  fetch(url, {
                    method: "POST",
                    headers: {
                      "Content-type": "application/json",
                      "X-CSRFToken": csrftoken,
                    },
                    body: JSON.stringify({ orderID: orderID, payID: details.id }),
                  });
                }
                // Show a success message to the buyer
                alert('Transaction completed by ' + details.payer.name.given_name + '!');
                // similar behavior as an HTTP redirect
                window.location.replace("/");
                window.location.href = 'payment-complete';
            });
        }


    }).render('#paypal-button-container');
  </script>
审批:功能(数据、操作){ 返回actions.order.capture().then(函数(详细信息){ 控制台日志(详细信息); sendData(); 函数sendData(){ 获取(url{ 方法:“张贴”, 标题:{ “内容类型”:“应用程序/json”, “X-CSRFToken”:CSRFToken, }, body:JSON.stringify({orderID:orderID,payID:details.id}), }); } //向买家显示成功消息 警报(“+details.payer.name.given_name+”!”完成的交易); //类似于HTTP重定向的行为 窗口。位置。替换(“/”); window.location.href='付款完成'; }); } }).render(“#贝宝按钮容器”);
首先,您确定这是一种在db中创建付款而不需要服务器端确认的好方法吗?您的意思是有更好的方法吗?
        onApprove: function(data, actions) {
            return actions.order.capture().then(function(details) {
                console.log(details);
                sendData();
                function sendData() {
                  fetch(url, {
                    method: "POST",
                    headers: {
                      "Content-type": "application/json",
                      "X-CSRFToken": csrftoken,
                    },
                    body: JSON.stringify({ orderID: orderID, payID: details.id }),
                  });
                }
                // Show a success message to the buyer
                alert('Transaction completed by ' + details.payer.name.given_name + '!');
                // similar behavior as an HTTP redirect
                window.location.replace("/");
                window.location.href = 'payment-complete';
            });
        }


    }).render('#paypal-button-container');
  </script>