【发布时间】:2012-04-10 14:51:02
【问题描述】:
我在基本模板中打印会话变量如下:
{% if request.session.user_id %}
Welcome {{ request.session.user_id }}, <a href="/accounts/logout/">Logout</a>
{% endif %}
views.py
def loginfun(request):
username = request.POST['username']
password = request.POST['password']
errors = []
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
request.session['user_id'] = username
return render_to_response('home.html', context_instance=RequestContext(request))
else:
#errors.append("Account Inactive")
return render_to_response('home.html',{'errors':errors}, context_instance=RequestContext(request))
settings.py
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.contrib.messages.context_processors.messages",
"django.core.context_processors.request",
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'registration'
)
【问题讨论】:
-
对不起,我不明白。我是新手。
-
RequestContext 问题已解决,但现在会话变量未显示。
-
用户名参数在哪里声明?我只能看到您将用户传递给登录方法。
-
更新了登录方式。我需要发布整个 settings.py 吗?
-
您是否将
django.contrib.sessions.middleware.SessionMiddleware包含到MIDDLEWARE_CLASSES以及您将什么设置为session后端?如果可能,请分享INSTALLED_APPS
标签: django session session-variables requestcontext