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