X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=blog%2Fviews.py;h=38ae51ee7e872d349dd2bbfc90cf9203d8256dbb;hb=ec7d2a820ab2779fd07c0bb2b1b2ecfa01b74620;hp=9a8aa8ba3f34059e8440e9ea11ee36da4491e09d;hpb=520a95911abd002abf604a7479170cc900359cbb;p=django-girls.git diff --git a/blog/views.py b/blog/views.py index 9a8aa8b..38ae51e 100644 --- a/blog/views.py +++ b/blog/views.py @@ -1,7 +1,39 @@ -from django.shortcuts import render +from django.shortcuts import render, get_object_or_404, redirect from django.utils import timezone from .models import Post +from .forms import PostForm def post_list(request): posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date') return render(request, 'blog/post_list.html', {'posts': posts}) + +def post_detail(request, pk): + post = get_object_or_404(Post, pk=pk) + return render(request, 'blog/post_detail.html', {'post': post}) + +def post_new(request): + if request.method == 'POST': + form = PostForm(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.author = request.user + post.published_date = timezone.now() + post.save() + return redirect('post_detail', pk=post.pk) + else: + form = PostForm() + return render(request, 'blog/post_edit.html', {'form': form}) + +def post_edit(request, pk): + post = get_object_or_404(Post, pk=pk) + if request.method == 'POST': + form = PostForm(request.POST, instance=post) + if form.is_valid(): + post = form.save(commit=False) + post.author = request.user + post.published_date = timezone.now() + post.save() + return redirect('post_detail', pk=post.pk) + else: + form = PostForm(instance=post) + return render(request, 'blog/post_edit.html', {'form': form})