django 1.4 でセッションを開くと、すべて問題ありません。いくつかのフォーム プロセスでページをリダイレクトすると、セッションを読み取ることができます
例 :
<form id="processForm" action="http://localhost:8000" method="post">{% csrf_token %}
<input type="submit" value="Search"></input>
</form>
私は localhost:8000 と memcached で作業しています。問題は、セッションを開いた後、ブラウザーで localhost:8000 を検索すると、終了しないようにセッションを読み取れないことです。
コード:
ビュー.py
def search(request):
c = {}
c.update(csrf(request))
if request.session.get('name'):
c.update({ 'hellomsg' : 'Hello:' + request.session["name"] })
else:
c.update({ 'hellomsg' : 'Hello: Guest' })
if request.method == 'POST':
if request.POST['q']:
if not request.POST['q'] == "false":
c.update({ 'output' : request.POST['q'] })
return render_to_response("form.html", c, context_instance= RequestContext(request))
def open_session(request):
c = {}
c.update(csrf(request))
if not request.session.get('name'):
if request.POST['nametxt']:
request.session['name'] = request.POST['nametxt']
c.update({ 'hellomsg' : 'Hello:' + request.POST['nametxt'] })
else:
c.update({ 'hellomsg' : 'Error...'})
else:
c.update({ 'hellomsg' : 'You're already logged in...'})
return render_to_response("form.html", c, context_instance= RequestContext(request))
def close_session(request):
c = {}
c.update(csrf(request))
if request.session.get('name'):
try:
del request.session['name']
c.update({ 'hellomsg' : 'logged out...'})
except KeyError:
pass
else:
c.update({ 'hellomsg' : 'Error'})
return render_to_response("form.html", c, context_instance= RequestContext(request))
urls.py
urlpatterns = patterns('',
('^$', search),
('^session/$', open_session),
('^csession/$', close_session),
)