質問

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

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

カスタムバリデーター関数「チェックファイル」は次のようになります: -

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.

ただし、テンプレート内のファイルを閲覧して[送信]をクリックしても、常に「フィールドが存在しない」エラーが発生することがわかります。私はここで少し混乱しています。 field.dataは、ファイル名の存在を確認する正しい方法ではありません

役に立ちましたか?

解決

最終的にこれを解決し、交換する必要がありました field.data でバリーターで field.file 次に、使用して属性にアクセスします field.file.filename.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top