59 lines
No EOL
1.8 KiB
Python
59 lines
No EOL
1.8 KiB
Python
from django.shortcuts import render, redirect
|
|
from .forms import LoginForm, RegisterForm
|
|
from django.views import View
|
|
from django.contrib.auth import authenticate, login, logout
|
|
from django.contrib import messages
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.utils.decorators import method_decorator
|
|
|
|
|
|
class LoginView(View):
|
|
template_name = 'accounts/login.html'
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
form = LoginForm()
|
|
return render(request, self.template_name, {'form': form})
|
|
|
|
def post(self, request):
|
|
|
|
form = LoginForm(data=request.POST)
|
|
if form.is_valid():
|
|
user = form.get_user()
|
|
login(request, user)
|
|
messages.success(request, "Login successful")
|
|
return redirect('home')
|
|
else:
|
|
messages.warning(request, "Login failed")
|
|
return redirect('login')
|
|
|
|
|
|
class RegisterView(View):
|
|
template_name = 'accounts/register.html'
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
form = RegisterForm()
|
|
return render(request, self.template_name, {'form': form})
|
|
|
|
def post(self, request, *args, **kwargs):
|
|
form = RegisterForm(request.POST)
|
|
if form.is_valid():
|
|
form.save()
|
|
messages.success(request, "Registration successful")
|
|
return redirect("login")
|
|
else:
|
|
messages.error(request, "Registration failed")
|
|
return render(request, self.template_name, {'form': form})
|
|
|
|
|
|
class LogoutView(View):
|
|
@method_decorator(login_required)
|
|
def get(self, request, *args, **kwargs):
|
|
logout(request)
|
|
messages.success(request, "Logout successful")
|
|
return redirect('login')
|
|
|
|
|
|
from django.shortcuts import render
|
|
|
|
def index(request):
|
|
return render(request, 'pages/index.html') |