У меня есть контроллер для страницы контактов, подобный следующему:
@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).
Моя проблема заключается в URL-адресе, который отображается, когда контактная форма отправляется с неверными данными, а @validate вызывает метод error_handler.
I.e.
- «http://domain/contact» — пользователь переходит на страницу контактов, заполняет форму и нажимает «Отправить».
- "http://domain/contact" - если в форме нет ошибок, пользователь успешно перенаправлен на страницу контактов.
- «http://domain/processContact» — если в форме есть ошибки, вызывается функция контакта, но перенаправление с открытой «страницы» processContact отсутствует, поэтому URL-адрес остается прежним.
Я ищу способ (правильный способ?), чтобы пользователь не видел "http://domain/processContact". В идеале пользователь должен видеть только "http://domain/contact".