У меня вопрос такой:
Есть вьюха (Django template). Но вьюхе юзер просматривает список новостей, может их скрывать, редактировать и создавать новые.
Этот хандлер готовит данные для вьюхи, выгружает список новостей.
#prepare view data, show news
class AdminPage(webapp.RequestHandler):
def get(self):
message = self.request.get('message')
if not message:
message = 'You are in admin console.'
logging.debug("Did message came -> " + message);
offset = self.request.get('offset')
limit = self.request.get('limit')
news = get_news(offset, limit, False)
values = {
'page': 'admin',
'news': news,
'count': get_news_count(),
'message': message
}
path = os.path.join(os.path.dirname(__file__),'html/admin.html')
self.response.out.write( template.render(path, values) )
Но у меня не получается это сделать.
Как же передать message в ханделер AdminPage?
class HideNews(webapp.RequestHandler):
def get(self):
key = self.request.get('key')
logging.debug("hide news with key["+key+"]")
hide_news( key )
values = {
'message':'News was hidden'
}
self.redirect("/admin")
Я пробовал следующую штуку:
class HideNews(webapp.RequestHandler):
def get(self):
key = self.request.get('key')
logging.debug("hide news with key["+key+"]")
hide_news( key )
message = "Новость скрыта".decode('utf-8')
url = "/admin?message=".decode('utf-8')+message
self.redirect(url)
self.response.headers = str(absolute_url)
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position
36-42: ordinal not in range(128)
WTF? Я что, не могу utf-8 строку передать в кач-ве параметра у редирект урла?
Кстати, если значение message задавать латиницей, то все работает отлично.
message = “OLOLO news has been hidden”.decode('utf-8') - работает без исключений.
Есть ли форвард в ГАЕ? Можно ли организовать аналог Action (RequestHandler) chaning по аналогии с фреймворками в Джаве (Struts и т.д.)
Можно ли делать форвард реквеста, как в Джаве?
Спасибо за помощь!