formencode无效的返回类型

时间:2009-06-28 04:11:32

标签: python error-handling webforms formencode

如果在表单编码中发生异常,那么返回类型是什么?

假设

if(request.POST):
        formvalidate = ValidationRule()
        try:
            new = formvalidate.to_python(request.POST)
            data = Users1( n_date = new['n_date'], heading = new['heading'], 
                           desc = new['desc'], link = new['link'], 
                           module_name = new['module_name'] )
            session.add(data)
            session.commit()
        except formencode.Invalid, e:
            errors = e

我们如何才能找到明智的错误

1 个答案:

答案 0 :(得分:3)

我假设您使用的是formencode(http://formencode.org

您可以使用unpack_errors来获取每个字段的错误,例如

import formencode
from formencode import validators

class UserForm(formencode.Schema):
    first_name = validators.String(not_empty=True)
    last_name = validators.String(not_empty=True)

form = UserForm()
try:
    form.to_python({})
except formencode.Invalid,e:
    print e.unpack_errors()

它将打印每个字段的错误字典。

您可以使用formencode.htmlfill.render以不同的方式呈现所有错误 http://formencode.org/htmlfill.html#errors