我使用一个会话变量来检查用户是否登录为承包商或雇主Django的 - Session变量不会改变,除非刷新页面
当承包商:
request.session['LoggedAsContractor'] = True
当雇主:
request.session['LoggedAsContractor'] = False
然后我实现了两个开关我给承包商&给EMPLOYER,它只是改变会话变量。
从HTML视图中,当我单击切换按钮时,变量不会改变,并且没有其他更改,但是当我刷新页面时,变量会发生更改以及其他一切。
在本地主机上运行项目时不会发生此错误,它只发生在项目部署(Gondor)时。
这是我有会话的类型:
INSTALLED_APPS = (
'django.contrib.sessions',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
)
UPDATE
这是该方法toContractor其由按钮称为开关
def switchToContractor(request, user_name):
request.session['LoggedAsContractor'] = True
if "employer" in request.GET['next']:
if str(request.user) == user_name:
return redirect('/contractor/' + user_name + '/')
else:
return redirect(request.GET['next'])
else:
return redirect(request.GET['next'])
差异请参阅request.session ['LoggedAsContractor'] = True和request.session ['LoggedAsContractor'] = False,是HTML中的视图。
的HTML代码:
{% if request.session.LoggedAsContractor %}
<!-- Show some buttons -->
{% else %}
<!-- Show other buttons -->
{% endif %}
UPDATE 2
这是包含切换按钮的HTML代码:
{% if request.session.LoggedAsContractor %}
<a href="/contractor/{{request.user}}/switch/?next={{request.path}}">Switch to Employer View</a>
{% else %}
<a href="/employer/{{request.user}}/switch/?next={{request.path}}">Switch to Contractor View</a>
{% endif %}
链接/承包商/用户名/ switch/重定向到方法switchToEmployer。
url /employer/username/switch/重定向到方法switchToContractor。
什么是“开关按钮”?它有什么作用?你确定它正在调用相关函数吗? – 2012-08-02 12:08:38
检查更新。 – mbanayosi 2012-08-02 12:50:24