from django.shortcuts import render , redirect from .models import Post from django.contrib.auth import authenticate, login, logout from django.contrib.auth.decorators import login_required from django.contrib.auth.forms import UserCreationForm def home(request): posts = Post.objects.all() return render(request, 'blog/home.html', {'posts': posts}) def post_detail(request, pk): post = Post.objects.get(pk=pk) return render(request, 'blog/post_detail.html', {'post': post}) def login_view(request): if request.method == 'POST': username = request.POST['username'] password = request.POST['password'] user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return redirect('dashboard') else: return render(request, 'blog/login.html', {'error': 'Invalid credentials'}) return render(request, 'blog/login.html') def logout_view(request): logout(request) return redirect('login') @login_required def dashboard(request): posts = Post.objects.filter(author=request.user) return render(request, 'blog/dashboard.html', {'posts': posts}) def register(request): if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): form.save() return redirect('login') else: form = UserCreationForm() return render(request, 'blog/register.html', {'form': form})