Ich versuche, Daten aus einem Formular in meine Datenbank zu speichern, verwende ich Django-Python für das Back-End.Ajax Form und Django Integration Post Fehler
Hier ist mein HTML-Formular
<form>
<center>
<div class="container-fluid">
<div class="row">
<div class="col-sm-5" style="background-color:white;">
<p>First name:<br></p>
</div>
<div class="col-sm-6" style="background-color:white;">
<p><input type="text" id="firstname"><br></p>
</div>
<div class="col-sm-5" style="background-color:white;">
<p>Last name:<br></p>
</div>
<div class="col-sm-6" style="background-color:white;">
<p><input type="text" id="lastname"><br></p>
</div>
<div class="col-sm-5" style="background-color:white;">
<p>Email ID:<br></p>
</div>
<div class="col-sm-6" style="background-color:white;">
<p><input type="text" id="email"><br></p>
</div>
<div class="col-sm-5" style="background-color:white;">
<p>Delivery Address:<br></p>
</div>
<div class="col-sm-6" style="background-color:white;">
<p><input type="text" id="address"><br></p>
</div>
<div class="col-sm-5" style="background-color:white;">
<p>Contact Number:<br></p>
</div>
<div class="col-sm-6" style="background-color:white;">
<p><input type="number" id="number"><br></p>
</div>
</div>
</div>
</center>
<h1> </h1>
<p>"Payment mode:- Cash On Delivery,</p>
<p>All payment have to be done to the delivery boy by cash."</p><br>
<center>
<button onclick = "submitform()" class="button" style="background-color:black;color:#ffcb04;padding:5px 10px 5px 10px;border-radius: 10px">Submit</button>
</center>
</form>
Das ist mein Javascript ist/Jquery/Ajax
function submitform(){
firstname = $("#firstname").val()
lastname = $("#lastname").val()
email = $("#email").val()
address = $("#address").val()
number = $("#number").val()
string = {
'firstname' :firstname,
'lastname' : lastname,
'email' : email,
'address' : address,
'number' : number
}
json_string = JSON.stringify(string);
$.ajax({
type: 'POST',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
url: '/orders/store-order-details/',
data: json_string,
success: function(data) {
window.location.href = "/confirmation/";
}
});
}
Das ist mein Django views.py
def store_order_details(request):
received_json_data = json.loads(request.body)
customer_obj = Customer(first_name=received_json_data['first_name'], last_name=received_json_data['last_name'],
email_ID=received_json_data['email_id'], contact_number=received_json_data['number'],
address=received_json_data['address'])
print(customer_obj)
customer_obj.save()
print(received_json_data['data'])
return Response(status.HTTP_201_CREATED)
ich nicht in der Lage bin zu Finde den Fehler darin heraus, denn ich fühle, dass dies auf oberflächlicher Ebene in Ordnung ist.
Das Problem ist, dass die Daten nicht in der Datenbank gespeichert werden. Ich bin mir nicht sicher, ob die Daten vom Ajax gepostet werden. Ich denke, der Python-Code in der Ansicht ist in Ordnung. Ich bezweifle jedoch, dass json.loads funktioniert.
ich diesen Fehler in den Anschluss
"POST/Bestellungen/store-Order-details/HTTP/1.1" 403 2274
Wenn ich meine Ansicht testen, indem Sie URL-Parameter
I mit Um diesen Fehler
das JSON-Objekt str werden müssen, nicht
'Bytes'Alle Formulareingaben sind alphanumerische
haben Sie den genauen Fehler nicht erwähnt –
welcher Bug? Sie erwähnen nicht, was das Problem ist – dirkgroten
Das Problem ist, dass die Daten nicht in der Datenbank gespeichert werden. Ich bin mir nicht sicher, ob die Daten vom Ajax gepostet werden. Ich denke, der Python-Code in der Ansicht ist in Ordnung. Ich bezweifle jedoch, dass json.loads funktioniert. – gaya3