Frage

Hallo Ich habe eine Formular-Klasse, die wie unten aussieht: -

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 benutzerdefinierten Validator-Funktion "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.

Allerdings finde ich, dass, obwohl ich eine Datei in der Vorlage durchsuchen und Klicken Sie auf Senden, es stellt sich immer die Fehlermeldung „Feld nicht vorhanden“. Ich bin ein wenig verwirrt hier. Ist field.data nicht der richtige Weg zu prüfen das Vorhandensein von Dateinamen

War es hilfreich?

Lösung

Gelöst dies schließlich hatte field.data im Prüfer mit field.file zu ersetzen und dann Zugriff auf seine Attribute mit field.file.filename.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top