Можете ли да зададете променливи на сесията във файлове MAKO в Pyramid?

Така че намерих този отговор относно настройването на променливи на сесията във файл с пирамидален изглед и след това по-късно достъп до него в шаблон на mako. ( Как да осъществя достъп до променливата на сесията в шаблона на Mako и Pyramid? )

Исках да знам дали можеш да го направиш по обратния начин. Така че вместо:

Pyramid view.py

def thisView(request):
    session = request.session
    session['selectedclientid'] = 'test' #selectedclient.id
    session.save()

уеб страница.mako

${request.session['selectedclientid']}

Мога ли да го сменя, за да мога да направя това вместо него?

уеб страница.mako

${request.session['selectedclientid'] = '5'}

Pyramid view.py

def thisView(request):
    someLogicOn(session['selectedclientid'])

Досега не съм успявал да го накарам да работи и не съм сигурен дали това се дължи само на липса на разбиране как да го направя или е нещо, което просто не може да се направи. Всеки съвет би бил чудесен!


person Adam Hollock    schedule 20.04.2013    source източник


Отговори (1)


В типичния работен процес за изобразяване изгледът се изпълнява преди изобразяващия. Не е ясно как възнамерявате да коригирате това. Възможно е да направите, ако извикате render себе си в изгледа, предполагам, така че ще покажа това.

webpage.mako:

<%
request.session['selectedClientId'] = '5'
%>

код:

def thisView(request):
    response = render_to_response('webpage.mako', {}, request=request)
    someLogicOn(request.session['selectedClientId'])
    return response

Това обаче логично е малко назад, така че може да искате да помислите два пъти за това, което правите.

person Michael Merickel    schedule 20.04.2013
comment
Добре, така че това е малко наивност от моя страна. Ще го обмисля, но се опитайте да измислите отделно решение. Благодаря! - person Adam Hollock; 20.04.2013