Django: erstellen von HTML-input-array mit einer django-Formular

Ich bin versucht, zu automatisieren, die Schaffung von so etwas wie dieses:

<input type='text' name='asdf[]' />
<input type='text' name='asdf[]' />
<input type='text' name='asdf[]' />

Durch das Radfahren durch eine Reihe in der form. Ich habe versucht, Dinge wie diese, zusammen mit einigen anderen Variationen:

# in a model class
for i in range(1, prim+1):
    self.fields['asdf'] = forms.CharField(label=i)

# in the template
<form action='#' method='post'>
    {{form.as_p}}
</form>

Aber ich habe nicht hatte kein Glück, obwohl.

Wie kann ich das automatisieren eine Reihe von Eingängen?

* * * * edit
Um zu klären, schließlich muss ich in der Lage sein, um Zugriff auf die Felder in der Vorlage wie diese:

{% for input in form.fields.asdf %}
{{input}}
{% endfor %}

Welche dann hoffentlich bekomme ich die original-input-Liste (siehe oben...

  • Ihre Schleife ist nur die Schaffung eines neuen CharField mit einem ungültigen Etikett (nicht eine ganze Zahl sein) und überschreiben sich selbst.Feld['asdf'] . Ich bin mir nicht sicher, was es ist, dass Sie zu tun versuchen. Meinst du so ähnlich wie mit den Wahlen-Attribut?
  • Ja, das bestimmten version einfach überschrieben. Ich hatte mehr komplizierten code vor, der versucht wurde, Listen zu erstellen und/oder Wörterbücher, aber ich konnte nicht Sie zu arbeiten entweder.
  • Vielleicht könnten Sie Ihr label "asdf" oder so etwas, dann eine Schleife durch alle Felder ausgeben, wenn {% ifequal field.label 'asdf' %} entspricht, und verwenden Sie dann forloop.counter 1, 2, 3 usw. Ich aktualisiert meine Antwort unten.
  • Das funktioniert vielleicht ganz gut
InformationsquelleAutor Brant | 2010-03-10
Schreibe einen Kommentar