MIDDLEWARE_CLASSES должно иметь -
'django.contrib.sessions.middleware.SessionMiddleware'
INSTALLED_APPS должно иметь -
'django.contrib.sessions'
Измените наше представление для входа в систему, чтобы сохранить серверное имя пользователя на куки -
def login(request):
username = 'not logged in'
if request.method == 'POST':
MyLoginForm = LoginForm(request.POST)
if MyLoginForm.is_valid():
username = MyLoginForm.cleaned_data['username']
request.session['username'] = username
else:
MyLoginForm = LoginForm()
return render(request, 'loggedin.html', {"username" : username}
создать представление formView для формы входа в систему, где мы не будем отображать форму, если установлен cookie -
def formView(request):
if request.session.has_key('username'):
username = request.session['username']
return render(request, 'loggedin.html', {"username" : username})
else:
return render(request, 'login.html', {})
изменить файл url.py, чтобы изменить URL, чтобы он соответствовал нашему новому представлению -
from django.conf.urls import patterns, url
from django.views.generic import TemplateView
urlpatterns = patterns('myapp.views',
url(r'^connection/','formView', name = 'loginform'),
url(r'^login/', 'login', name = 'login'))
url(r'^logout/', 'logout', name = 'logout'),
создать простое представление выхода из системы, которое удаляет наши cookie.
def logout(request):
try:
del request.session['username']
except:
pass
return HttpResponse("<strong>You are logged out.</strong>")