2010-10-30 18 views
5

Hola tengo una clase de formulario que se parece a continuación: -WTforms: Error "campo no presentar"

class UserCreateForm(wtf.Form): 
    name=wtf.TextField('Name',validators=[validators.Required(),username_check]) 
    email=wtf.TextField('Email') 
    userimage=wtf.FileField(u'Upload Image',validators=[checkfile]) 

El validador personalizado función "checkfile" se parece a esto: -

def checkfile(form,field): 
    if field.data: 
     filename=field.data.lower() 
     ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif']) 
     if not ('.' in filename and filename.rsplit('.',1)[1] in ALLOWED_EXTENSIONS): 
      raise ValidationError('Wrong Filetype, you can upload only png,jpg,jpeg,gif files') 
    else: 
     raise ValidationError('field not Present') # I added this justfor some debugging. 

Sin embargo Encuentro que, aunque busco un archivo en la plantilla y , haga clic en enviar, siempre genera el error "campo no presente". Soy un poco confundido aquí. Es field.data no de la manera correcta para comprobar si hay la presencia de nombres de archivo

Respuesta

7

resuelto este último, tenía que reemplazar field.data en el validador con field.file y luego acceder a sus atributos usando field.file.filename.

+0

Debe marcar esto como la respuesta aceptada. –

Cuestiones relacionadas