def post(request, post): """ Create and edit Blog Posts Args post: Blog post that is being edited GET Method Display an empty form when adding a new post. Display a filled in form when editing an existing post. POST Method When submiting an existing post or creating a new post. """ form = PostForm(instance=post, initial={'draft': post and post.published == datetime.datetime.max}) edit = post != None if request.method == 'POST': if form.validate(request.form): post = form.save() if form.data['draft']: post.published= datetime.datetime.max post.put() else: if not post.path: post.published = datetime.datetime.now() post.publish() return render_to_response("blog/admin/published.html", {'config': config, 'post':post, 'draft': form.data['draft'], 'edit': edit,} ) template_vals = {'config': config, 'form': form.as_widget(), 'edit': edit, 'menu_new': not edit, } return render_to_response('blog/admin/edit.html', template_vals)