WTforms: ошибка "поле отсутствует" - PullRequest
5 голосов
/ 30 октября 2010

Привет, у меня есть класс формы, который выглядит следующим образом: -

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.

Однако я нахожу это, хотя я просматриваю файл в шаблоне и нажмите кнопку отправить, это всегда вызывает ошибку «поле не присутствует». Я немного запутался здесь. Является ли field.data неправильным способом проверки наличие имен файлов

1 Ответ

7 голосов
/ 08 ноября 2010

Наконец-то решено, пришлось заменить field.data в валидаторе на field.file и затем получить доступ к его атрибутам, используя field.file.filename.

...