manhan.io/account/views.py
2025-04-28 16:40:32 +03:00

54 lines
1.7 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')