WTForms: Ошибка «Поле не присутствует»
-
27-09-2019 - |
Вопрос
Привет, у меня есть класс формы, который выглядит как ниже: -
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
в валидаторе с field.file
а затем получить доступ к своим атрибутам, используя field.file.filename
.
Не связан с StackOverflow