我正在使用Pylons 1.0构建一个服务器端应用程序的Web前端。
现在我正在写第一个表单,而且我正面临一个有关验证的问题。使用FormEncode和@validate装饰器我可以很容易地从客户端角度验证用户输入,但是当我提交数据时到服务器,它可能会执行额外的检查,并最终抛出我需要显示给用户的异常。主塔,FormEncode和外部验证
我的问题:有没有简洁方式来整合/模拟此异常处理到FormEncode /验证流?例如,重新显示带有填充字段和错误消息的表单,如果异常来自@validate本身,就会发生这种情况?
这就是我目前所面对的:
def edit(self, id):
return render('/edit_user.mako')
@validate(schema=form.UserForm(), form="edit")
def add_user(self):
if request.POST:
u = helpers.load_attributes(User(), self.form_result)
try:
model.save_to_server(u)
except MyBaseException, exc:
helpers.flash(unicode(exc))
return self.edit()
通过这种方式,在服务器端的例外,我可以看到“闪”的消息,但课程的形式将空场的情况下:/