5

こんにちは、私は以下のようなフォームクラスを持っています:-

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 はファイル名の存在を確認する正しい方法ではありませんか

4

1 に答える 1

7

field.dataこれを最終的に解決し、バリデーターをに置き換えてから、field.fileを使用してその属性にアクセスする必要がありましfield.file.filenameた。

于 2010-11-08T19:19:59.153 に答える