+
+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})