X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=blog%2Fviews.py;h=38ae51ee7e872d349dd2bbfc90cf9203d8256dbb;hb=ec7d2a820ab2779fd07c0bb2b1b2ecfa01b74620;hp=91ea44a218fbd2f408430959283f0419c921093e;hpb=5797c7e71613e9e7920627066d0f55cde541692a;p=django-girls.git diff --git a/blog/views.py b/blog/views.py index 91ea44a..38ae51e 100644 --- a/blog/views.py +++ b/blog/views.py @@ -1,3 +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 -# Create your views here. +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})