[PYTHON] Implementieren Sie eine Schaltfläche zum Hinzufügen eines Formulars im Django-Inline-Formularsatz
Einführung
Der Inline-Formularsatz von Django eignet sich genau zum Erstellen von Eltern-Kind-Beziehungen, z. B. des Kopfteils einer Bestellung (Datum, Kundenname usw.) und der damit verbundenen Bestelldetails (Bestellung, Menge usw.). ist.
(Handschriftliches Beispiel)
Bis Sie sich daran gewöhnt haben, ist dies jedoch etwas verwirrend, da Sie mehrere Formulare gleichzeitig bearbeiten müssen.
Bei der Bestellung enthält die Zeile ein Formular für die neue Eingabe der am Anfang festgelegten Nummer. Wenn Ihnen jedoch alle Formulare ausgehen und Sie eine neue Zeile wünschen, müssen Sie den zusätzlichen Vorgang selbst implementieren. Dafür ist jQuery unbedingt erforderlich.
In meinem Fall verstand ich das Inline-Formular nicht und jQuery stand kurz vor dem Studium, sodass es nicht wie erwartet funktionierte und es mir schwer fiel. Es ist einfach, wenn Sie alles verstanden haben.
Wie kann ich eine Zeile hinzufügen? Ich werde so viel teilen, wie ich gelernt habe.
Dinge die zu tun sind
Verwenden Sie basierend auf dem Bestellformular jQuery, um eine Schaltfläche zum Hinzufügen eines Formulars zum Inline-Formularsatz zu implementieren.
Ich werde die Grundlagen von Python und Django nicht erklären.
Umgebung
python 3.6.9、 Django 3.0.8
Bootstrap 4.5.0、 jQuery 3.5.1 slim
Produktion
Beginnen wir mit einem normalen Inline-Formularsatz und sehen, wie Django so viele Formulare verwaltet. Im offiziellen Tutorial Es wird hier geschrieben (Die Erläuterung des Formularsatzes, aber die Formularverwaltung befindet sich auch im Inline-Formularsatz. Es wird das gleiche sein).
Die Quelle ist hier einfügen.
Bitte geben Sie die Daten "Kunde" und "Produkt" auf dem Verwaltungsbildschirm ein.
Die Vorlage zum Anzeigen des Formulars lautet wie folgt. (Auszug)
{{form}} zeigt das "Bestelldatum" und "Kunde" im Kopfteil an. Der in Djangos Vorlagensprache geschriebene Teil wird für die Webanzeige in HTML konvertiert. Wie wird dieser Teil konvertiert? Versuchen Sie, die Seitenquelle in Ihrem Browser anzuzeigen.
Django hat viele Dinge geschrieben. ↓ (Ich habe Notizen, Zeilenumbrüche usw. eingefügt.)