Referenzieren einer dynamischen Anzahl von Feldern in einer Vorlage in Django

8

Es ist alles sehr einfach. Ich habe dieses Formular:

%Vor%

Die Anzahl der Untereinheiten ist unbekannt. Ich würde gerne so etwas verwenden (Sie bekommen die Idee):

%Vor%

Aber das geht natürlich nicht. Meine Frage ist, wie referenziere ich diese Formularfelder in Django Vorlagensprache?

    
Brian 05.01.2011, 12:38
quelle

3 Antworten

7

Um auf die BoundField-Instanzen für Ihre dynamischen Feldinstanzen zuzugreifen, erhalten Sie Zugriff auf alle Attribute und Methoden, die zum Rendern des Feldes benötigt werden , müssen Sie auf die Feldobjekte mit der Form form.fieldname statt form.fields[fieldname]

zugreifen

Hier ist ein potenzielles Refactoring Ihrer Formularklasse:

%Vor%

Dann sollten Sie in Ihrer Vorlage in der Lage sein, die Felder so zu durchlaufen, wie Sie normalerweise erwarten würden, indem Sie auf form.su_fields :

zugreifen %Vor%

(Ich hatte mehrere Stunden lang mit demselben Problem zu kämpfen. Danke an diese Antwort von Carl Meyer und diesen Artikel zur dynamischen Formgenerierung von Jacob Kaplan-Moss um mich in die richtigen Richtungen zu lenken.)

    
gravelpot 02.03.2011 21:14
quelle
4

Gruppieren Sie diese Felder in einer zusätzlichen Liste und durchlaufen Sie dann einfach diese Liste.

In __init__ :

%Vor%

In Vorlage:

%Vor%     
gruszczy 05.01.2011 12:42
quelle
1

Um Gruszczys Antwort zu korrigieren, funktionierte dieser Code für mich:

In __init__ Ihres Formulars:

%Vor%

In Ihrer Vorlage:

%Vor%     
rom 28.02.2015 13:21
quelle

Tags und Links