2010-10-30 2 views
5

Привет У меня есть класс формы, который выглядит, как показано ниже: -WTforms: Ошибка "поле нет"

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 не правильный путь, чтобы проверить наличие имен файлов

ответ

7

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

+0

Вы должны отметить это как принятый ответ. –

Смежные вопросы