def edit_post(request, key=None): post = None if key is not None: post = Post.get(key) if request.method == 'POST': form = PostForm(request.POST) if form.is_valid(): post = Post.from_form(form) post.put() return HttpResponseRedirect('/admin/posts/') elif post: form = PostForm({'title': post.title, 'content': post.content, 'publish': (post.published is not None), # Hidden 'key': post.key(), 'slug': post.slug, 'published': post.published, 'updated': post.updated}) else: form = PostForm() return render_admin_template('admin/posts/edit.html', dict( post=post, post_form=form))