X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=blog%2Fviews.py;h=33e93011b81673b7ecdaf4e84b380aaa0a2563d0;hb=3fbc3f2596de050e74a16a569f99f27e6801c8a4;hp=f1c9b6826e28d894697ee9f61aed881d6dcd2983;hpb=705f08b190025689910342916669a0ed89cc5b18;p=django-girls.git diff --git a/blog/views.py b/blog/views.py index f1c9b68..33e9301 100644 --- a/blog/views.py +++ b/blog/views.py @@ -1,11 +1,39 @@ -from django.shortcuts import render, get_object_or_404 +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') + 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})