56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
from django.views.generic import View
|
|
from django.template import RequestContext
|
|
from django.shortcuts import render_to_response
|
|
from django.contrib.auth import logout
|
|
from django.utils.translation import ugettext_lazy as _
|
|
from django.http import HttpResponseRedirect
|
|
from django.contrib import messages
|
|
from django.contrib.auth import login
|
|
|
|
from .forms import LoginForm
|
|
|
|
|
|
class LoginView(View):
|
|
template = 'users/login.html'
|
|
|
|
def get(self, request):
|
|
context = {
|
|
'login_form': LoginForm()
|
|
}
|
|
|
|
ctx = RequestContext(request, context)
|
|
return render_to_response(self.template, context_instance=ctx)
|
|
|
|
def post(self, request):
|
|
login_form = LoginForm(request.POST)
|
|
|
|
if login_form.is_valid():
|
|
user = login_form.authenticate()
|
|
login(request, user)
|
|
|
|
messages.success(
|
|
request,
|
|
_('Logged in successfully.')
|
|
)
|
|
|
|
return HttpResponseRedirect('/')
|
|
|
|
context = {
|
|
'login_form': login_form,
|
|
}
|
|
|
|
ctx = RequestContext(request, context)
|
|
return render_to_response(self.template, context_instance=ctx)
|
|
|
|
|
|
class LogoutView(View):
|
|
def get(self, request):
|
|
logout(request)
|
|
|
|
messages.success(
|
|
request,
|
|
_('Logged out successfully')
|
|
)
|
|
|
|
return HttpResponseRedirect('/')
|