我試圖將這個HTML表單保存在數據庫中的表中,但出現了“無”錯誤。我已經講了一個小時了。請幫忙
拜托,我該怎么解決這個問題
這是我創建的HTMLorder.html
<form action="" method="post" id="payment-form">
<input type="text" class="form-control" id="first_name"
name="first_name"
value="{{request.user.first_name}}">
<textarea type="text" class="form-control" id="address" name="address"
placeholder="1234 Main St" required></textarea>
<button id="submit" class="btn btn-success lg w-100 fw-bold" >
Proceed to Payment
</button>
</form>
這是我的views.py
def add(request):
basket = Basket(request)
if request.POST.get("action") == "post":
order_key = request.POST.get("order_key")
user_id = request.user.id
baskettotal = basket.get_total_price()
first_name = request.POST.get("first_name")
last_name = request.POST.get("last_name")
address = request.POST.get("address")
print(first_name, last_name, address)
order = Order.objects.create(
first_name = first_name,
address=address,
total_paid=baskettotal,
)
order_id = order.pk
response = JsonResponse({"success": "Order created"})
return response
js文件
<script type="text/javascript">
function makePayment(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: '{% url "order:add" %}',
data: {
csrfmiddlewaretoken: "{{csrf_token}}",
action: "post",
},
success: function (json) {
console.log(json.success)
},
error: function (xhr, errmsg, err) {},
});
}
</script>
首先,您不必通過post額外值操作來確定post請求,但必須使用
request.method
它將返回所有可用的方法,您可以通過添加如下檢查來檢查特定的方法注意:在添加這個檢查時,總是使用大寫的方法,我不確定您在哪里調用
makePayment()
函數,也不確定您在python腳本中試圖訪問的任何數據必須像這樣通過ajax{data:{}}
傳遞而不是像這樣訪問它