2011-12-26 12 views
5

tengo forma con el frasco-wtf para cargar alguna imagen, también el archivo de campo puede ser múltiplesno puede append_entry FieldList en frasco-wtf más de un

mi formulario:

class ComposeForm(Form): 
    attachment = FieldList(FileField(_('file')), _('attachment')) 
    add_upload = SubmitField(_('Add upload')) 

mi punto de vista :

if form.validate_on_submit(): 
     if form.add_upload.data: 
      form.attachment.append_entry() 
      return render_template('mailbox/compose.html', form=form) 
     else: 
      form.attachment.append_entry() 

mi plantilla:

<form method="POST" enctype="multipart/form-data" action="."> 
       {% for field in form %} 
       {{field}} 
       {% endfor %} 
</div> 

cuando uso enctype="multipart/form-data" en forma append_entry no funciona, sólo se añadirá un campo más de nuevo clic en add_upload pero después de refresco tengo agen un solo campo (no dos)

cómo puedo solucionar esto? no hay ningún error, creo que debido a enctype wtform olvidar cuántos campos tengo que agregar más: D

+0

Cuál es el mensaje de error que recibes cuando intentas hacer 'append_entry' – tkone

+0

@tkone no hay ningún error, en forma simple recuerda el recuento de campos pero en varias partes cada vez solo la forma adjunta tiene un campo – Efazati

+0

¿Cómo funciona? append_entry' no funciona? ¿Qué sucede cuando ejecutas esa función? ¿Cuál es el resultado de tu código? – tkone

Respuesta

4

Llamar al append_entry le faltan los datos.

Desde el Documentation:

append_entry ([de datos])

Crear una nueva entrada con los datos por defecto opcionales.

Las entradas agregadas de esta manera no recibirán formdata, sin embargo, y solo pueden recibir datos de objeto.

Si intenta obtener los datos que se enviaron en el formulario, puede intentar usar pop_entry. O al menos haciendo algunas depuraciones y viendo cómo es form.attachment.entries. ¿Contiene valores? ¿Qué sucede cuando iteras a través de esos valores?

Cuestiones relacionadas