Ошибка использования перенаправления в пилонах
Использование Pylons версии 1.0: Работа над примером FormDemo из книги Pylons:
http://pylonsbook.com/en/1.1/working-with-forms-and-validators.html
Мой контроллер имеет следующие функции:
class FormtestController(BaseController):
def form(self):
return render('/simpleform.html')
def submit(self):
# Code to perform some action based on the form data
# ...
h.redirect_to(controller='formtest', action='result')
def result(self):
return 'Your data was successfully submitted.'
Сначала я заметил, что в книге автор указывает на импорт redirect_to, выполняя следующий импорт:
from pylons.controllers.util import redirect_to
Это кажется неправильным, поскольку redirect_to находится в модуле маршрутов, поэтому я изменил его на следующее:
from routes import redirect_to
все работает нормально, больше нет ошибки импорта, но когда я выполняю отправку формы, я вижу следующую трассировку
h.redirect_to(controller='formtest', action='result')
target = url_for(*args, **kargs)
encoding = config.mapper.encoding
return getattr(self.__shared_state, name)
AttributeError: 'thread._local' object has no attribute 'mapper'
Может кто-нибудь мне помочь?
1 ответ
Решение
Пытаться:
from pylons import url
from pylons.controllers.util import redirect
# ...
redirect(url(controller='formtest', action='result'))
Возможно, вам лучше использовать текущую документацию Pylons 1.0 и руководство QuickWiki, обновленное до 1.0, а также другие ссылки на сайте.