WTforms: Erreur « champ non présent »
-
27-09-2019 - |
Question
Salut j'ai une classe de forme qui ressemble à ci-dessous: -
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])
La fonction validateur personnalisé "look" de checkfile comme ceci: -
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.
Cependant, je trouve que même si je parcourir un fichier dans le modèle et cliquez sur soumettre, elle soulève toujours l'erreur « champ non présent ». je suis un peu confus ici. Est-field.data pas la bonne façon de vérifier la présence de noms de fichiers
La solution
Résolu ce enfin, a dû remplacer field.data
dans le validateur avec field.file
, puis accéder à ses attributs à l'aide field.file.filename
.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow