Updated for new Django version
[django-girls.git] / blog / views.py
index 91ea44a218fbd2f408430959283f0419c921093e..33e93011b81673b7ecdaf4e84b380aaa0a2563d0 100644 (file)
@@ -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})