2013-06-19 11 views
9

ile WTForms FieldList yineleme nasıl? Ayrıca, FormField gerekli olduğunda tamamen emin değil. controller içerisinde SonraNasıl jinja2

class GuestForm(Form): 
    email = TextField() 
    vip = BooleanField() 

class VenueForm(Form): 
    name = TextField() 
    guests = FieldList(FormField(GuestForm)) 

: Teşekkür

cevap

14

FormField bir örnek bir sınıf değil sürer sen FieldList alanın üzerine yineleme gerekecektir Şablonunuzda

form = VenueForm(obj=myobject) 
render("template-name.html", form=form) 

sanki kendi formuydu:

{% for guest_form in form.guests %} 
    <ul> 
    {% for subfield in guest_form %} 
    <li>{{ subfield.label }} {{ subfield }}</li> 
    {% endfor %} 
    </ul> 
{% endfor %} 
+4

@downvoter - neden düşürdüğünüzü açıklayabilir misiniz? –

+0

Merhaba, örneğinizi bir test sayfasında kullanmayı denedim ve herhangi bir alan göstermiyor. Alanları kaçırmış olabileceğim şablonlarda görüntülemek için başka bir adım var mı? – neilH

+0

Evet, 'email' ve 'vip' özellikli bir veya daha fazla nesneyi içeren bir listeyi içeren' guest' özelliği olan bir nesneye ihtiyacınız var. En azından istediyseniz, ya da "FieldList" e en az sayıda giriş eklemeniz gerekir - böylece 'VenueForm' 'misafir 'özelliği bildirimi' Guests = FieldList (FormField (GuestForm), min_entries = 1) olacaktır. bir giriş –