Auf einer Django-Website versuche ich eine Feldeingabe für Datenbankübereinstimmungen zu überprüfen. Ich habe Suchfunktionen in meinen Django .py-Dateien, aber da ich sie nach dem Laden der Seite nicht ausführen kann, gehe ich davon aus, dass eine JavaScript-POST-Anfrage die beste Option ist.Django Javascript POST-Anfrage
<input id="this_field" onblur="querySomething()">
Es gibt zahlreiche SO Fragen über JS POST [1, 2, 3, etc.], jedoch habe ich nicht in der Lage gewesen, einen von ihnen zu bekommen, für mich zu arbeiten. Hier ist eine meiner vielen Versuchen, etwas Nützliches in Gang zu bringen:
function querySomething(){
$.ajax({
type: "POST",
url: "/my/url/",
data: {"check_this": "123-456789",},
success: function() {
alert('success');
}
});
Oder
function postSearch() {
$.post("/my/url/",
{
"check_this": "123-456789",
},
function(data, status){
alert("Data: " + data + "\nStatus: " + status);
})
}
Wenn ich nur die Eingabe wie ein Suchfeld behandeln und legt ihn (mit JS oder auf andere Weise), es funktioniert . Da ich jedoch versuche, dem Benutzer Ergebnisse zur Verfügung zu stellen, damit er den Rest der Seite ausfüllen kann, müssen die Ergebnisse auf derselben Seite verfügbar sein, sobald der Benutzer den Fokus verlässt.
Ich weiß nicht, ob meine {% csrf_token %}
Token hier ins Spiel kommt. Ich erhalte keine Fehler oder Nachrichten in der Konsole oder in meinen Serverprotokollen.
// Edited Version von Code lautet nun:
function querySomething(){
$.ajax({
type: "POST",
url: "/my/url/",
headers: {
"Content-Type": "application/json",
"HTTP_GROUP_NAME": "groups_name",
},
data: {
"check_this": $('#this_field').val(),
"csrfmiddlewaretoken": "{{csrf_token}}",
},
success: function(data){
console.log("success");
console.log(data);
},
failure: function(data){
console.log("failure");
console.log(data);
},
});
alert('marcusShep function ran.')
}
Fest codiert mögliche Fehler hier einfügen zu begrenzen. Ich habe '{% csrf_token%}' in '{{csrf_token}}' 'geändert, um' ... unerwarteten <'Fehler zu beheben, da der erste ein verstecktes' whyeliah
Ich habe meine Antwort aktualisiert – marcusshep
@whyeliah Wenn Sie diese Antwort hilfreich finden, sollten Sie in Betracht ziehen, diese zu akzeptieren. – marcusshep