9
Wie der Titel schon sagt, hier ist was ich habe wiederholen? Außerdem ist nicht ganz sicher, ob FormField erforderlich ist. DankWie WTForms Fieldlist mit Jinja2
Wie der Titel schon sagt, hier ist was ich habe wiederholen? Außerdem ist nicht ganz sicher, ob FormField erforderlich ist. DankWie WTForms Fieldlist mit Jinja2
FormField
nimmt eine Klasse keine Instanz:
class GuestForm(Form):
email = TextField()
vip = BooleanField()
class VenueForm(Form):
name = TextField()
guests = FieldList(FormField(GuestForm))
Dann in Ihrem Controller:
form = VenueForm(obj=myobject)
render("template-name.html", form=form)
in Ihrer Vorlage müssen Sie über das Fieldlist Feld wiederholen, als ob es war sein eigenes Formular:
{% for guest_form in form.guests %}
<ul>
{% for subfield in guest_form %}
<li>{{ subfield.label }} {{ subfield }}</li>
{% endfor %}
</ul>
{% endfor %}
@ downvoter - könnten Sie erklären, warum Sie die Antwort abgelehnt haben, damit ich die Antwort verbessern kann? –
Hallo, ich habe versucht, Ihr Beispiel in einer Testseite zu verwenden, und es zeigt keine Felder an. Gibt es einen weiteren Schritt, um die Felder in einer Vorlage anzuzeigen, die ich möglicherweise verpasst habe? – neilH
Ja, Sie benötigen ein Objekt mit einer 'guests' -Eigenschaft, die eine Liste mit einem oder mehreren Objekten mit' email'- und 'vip'-Eigenschaften enthält. Entweder das oder Sie müssen eine Mindestanzahl von Einträgen zu 'FieldList' hinzufügen - so würde '' gues'' Property-Deklaration von 'VenueForm' zu' guests = FieldList (FormField (GuestForm), min_entries = 1) ', wenn Sie es wollten ein Eintrag. –