2010-10-30 4 views
5

Hallo ich eine Form Klasse haben, die wie unten aussieht: -WTforms: Fehler "Feld nicht vorhanden"

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]) 

Die Funktion benutzerdefinierten Validator "checkfile" sieht wie folgt aus: -

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. 

jedoch Ich finde, dass, obwohl ich eine Datei in der Vorlage durchsuchen und klicken Sie auf Senden, es immer den Fehler "Feld nicht vorhanden". Ich bin ein wenig verwirrt hier. Ist field.data nicht der richtige Weg für das Vorhandensein von Dateinamen

Antwort

7

Gelöst dies schließlich zu überprüfen, hatte mit field.filefield.data im Prüfer zu ersetzen und dann den Zugriff field.file.filename seine Attribute verwenden.

+0

Sie sollten dies als die akzeptierte Antwort markieren. –