如果我不选择一个文件,只需单击“提交”,我会得到以下结果错误:-在
Invalid pstruct: {'upload': "b'' is not a FieldStorage instance"}
这不是我在deform demo site上得到的行为,如果将其留空会导致更合理的“Required”错误消息。在
使用下面我自己的验证器并不能解决发行日期:在
^{2}$我可以看到错误被引发了,但是e.render()
的输出,其中e是来自form.validate
的ValidationFailure
与错误本身不匹配。相关的deform
源代码在'小工具.py'其中,_FieldStorage
类检查cstruct
是否具有file
属性,并引发它自己的Invalid
异常。在
下面是一个函数,它执行验证调用(bog standard stuff really),它返回呈现的页面。在
def generate_upload_form(request):
form = deform.Form(upload_schema, buttons=('submit',))
if getattr(request, 'POST') and 'submit' in request.POST:
try:
value_dict = form.validate(request.POST.items())
except deform.ValidationFailure as e: # Invalid form
form = e.render()
else: # Successfully validated, now do operation
upload_form_operation(request, value_dict)
if isinstance(form, deform.Form):
form = form.render()
return form
如果没有monkey修补deform
代码库,我如何显示自己的错误消息?在
是否确实正确提交了表单数据?当deform尝试通过duck类型反序列化提交的值时,通常会发生此错误。在
get忽略了一个特别的事项,那就是确保你的HTML表单有额外的enctype定义
如果没有这个,表单将以字符串的形式提交文件名,这将失败
相关问题 更多 >
编程相关推荐