こんにちは、私は以下のようなフォームクラスを持っています:-
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])
カスタムバリデータ関数「checkfile」は次のようになります:-
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.
ただし、テンプレート内のファイルを参照して submit をクリックしても、常に「フィールドが存在しません」というエラーが発生することがわかりました。ここで少し混乱します。field.data はファイル名の存在を確認する正しい方法ではありませんか