Ich bin ziemlich neu im Django und versuche etwas sehr Einfaches zu tun.
Ich habe ein ModelForm
für das folgende Modell:
Und ich zeige dem Benutzer ein einfaches Formular, das dabei hilft:
Die Frage wird bearbeitet (eine Datenbankabfrage wird generiert) basierend auf der Frage)
Dann sollte das Abfrageergebnis direkt unterhalb des Formulars in der gleiche Seite.
So sieht mein views.py aus:
%Vor%Im Moment versuche ich einfache Dinge, ich nehme den Wert im Abfragefeld des Formulars und versuche, es zurück auf die Seite zu schicken, bisher bin ich gescheitert. Das ist index.html:
%Vor% Wenn ich das tun könnte, denke ich, dass die Abfrage stuffs so schwierig sein wird. Das Formular funktioniert gut, die Daten werden in der Datenbank gespeichert. Nur die response
-Zeichenfolge von views.py
konnte nicht innerhalb von index.html
nach der Formularübergabe abgerufen werden. Können Sie mir bitte helfen?
BEARBEITEN:
Versucht, in index.html
basierend auf Hoffs Antwort zu folgen:
Immer noch kein Glück: (
Was Sie brauchen, ist ein asynchroner Post (Ajax), der mit jQuery einfach ist. Diese Antwort finden Sie in einer vollständigen Lösung: Wie man ein Django-Formular mit AJAX & amp; jQuery
Sie können überprüfen, ob das Formular gesendet wurde oder nicht (d. h. ob es sich um eine Post-Anfrage handelt oder nicht):
%Vor% Überprüfen Sie dann in der Vorlage, ob die Kontextvariable post_output
existiert, wenn sie die Ausgabe anzeigt:
Kurz gesagt, die Logik ist:
request.POST
dict vorhanden ist. Wenn Sie die Ausgabe nicht anzeigen möchten, wenn die Seite nach einem Beitrag einfach aktualisiert wird, übergeben Sie das request
-Objekt an die Vorlage und überprüfen Sie Folgendes:
Tags und Links django django-forms modelform