2
Я хочу, чтобы загрузить один файл со следующей схемой дуршлаг:дуршлаг виджет загрузить файл деформируются
import colander
import deform
from deform.interfaces import FileUploadTempStore
@view_config(route_name='upload',
renderer='templates/upload.pt',
permission='view')
def upload(self):
tmpstore = FileUploadTempStore()
class Schema(colander.Schema):
name = colander.SchemaNode(
deform.FileData(),
widget=deform.widget.FileUploadWidget(tmpstore),
title='Upload'
)
def on_validated(request, captured):
pass
schema = Schema()
form = deform.Form(schema, buttons=('upload',), formid='form')
html = []
captured = None
if 'upload' in self.request.POST:
try:
controls = self.request.POST.items()
captured = form.validate(controls)
response = on_validated(self.request, captured)
if response is not None:
return response
except deform.ValidationFailure as e:
html.append(e.render())
else:
html.append(form.render())
html = ''.join(html)
return {
'form': html,
}
Вид работает отлично, я могу просмотреть и выбрать файл. Однако, когда я нажимаю кнопку «загрузить», я получаю ошибку: TypeError: 'NoneType' object does not support item assignment
controls
определен, но form.validate()
проблема. Это относится к deform/widget.py линии 1674:
self.tmpstore[uid]['preview_url'] = preview_url