我有一个用于联系页面的控制器,类似于以下内容:
@expose('project.templates.contacts')
def contact(self, **kw):
return dict( form=contact_form )
提交后,使用以下控制器方法验证表单:
@validate(form=contact_form, error_handler=contact)
@expose()
def processContact(self, **kw):
# Do some processing on the contact form
redirect('contact')
这是许多在线教程(例如http://turbogears.org/2.0/docs/main/FormBasics.html)提倡的设置。
我的问题是当联系表单提交错误数据并且 @validate 调用 error_handler 方法时暴露的 URL。
IE
- “ http://domain/contact ” - 用户进入联系页面并填写表格并点击提交
- “ http://domain/contact ” - 如果表单中没有错误,用户将成功重定向到联系页面。
- “ http://domain/processContact ” - 如果表单中有错误,则调用联系函数,但没有来自暴露的 processContact 'page' 的重定向,因此 url 保持不变。
我正在寻找一种方法(正确的方法?)来防止用户不得不看到“ http://domain/processContact ”。理想情况下,用户应该只看到“ http://domain/contact ”。