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')