Updated for new Django version
[django-girls.git] / blog / views.py
1 from django.shortcuts import render, get_object_or_404, redirect
2 from django.utils import timezone
3 from .models import Post
4 from .forms import PostForm
5
6 def post_list(request):
7 posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('-published_date')
8 return render(request, 'blog/post_list.html', {'posts': posts})
9
10 def post_detail(request, pk):
11 post = get_object_or_404(Post, pk=pk)
12 return render(request, 'blog/post_detail.html', {'post': post})
13
14 def post_new(request):
15 if request.method == 'POST':
16 form = PostForm(request.POST)
17 if form.is_valid():
18 post = form.save(commit=False)
19 post.author = request.user
20 post.published_date = timezone.now()
21 post.save()
22 return redirect('post_detail', pk=post.pk)
23 else:
24 form = PostForm()
25 return render(request, 'blog/post_edit.html', {'form': form})
26
27 def post_edit(request, pk):
28 post = get_object_or_404(Post, pk=pk)
29 if request.method == 'POST':
30 form = PostForm(request.POST, instance=post)
31 if form.is_valid():
32 post = form.save(commit=False)
33 post.author = request.user
34 post.published_date = timezone.now()
35 post.save()
36 return redirect('post_detail', pk=post.pk)
37 else:
38 form = PostForm(instance=post)
39 return render(request, 'blog/post_edit.html', {'form': form})