def add(request): form = ArticleForm(request.form, obj=AutoNow(), prefix='create') if request.method == 'POST' and form.validate(): key_name, kwds = prepare(form) # kwds['html'] = render_jinja('cache_body.html', body=kwds['body']) kwds['author'] = users.get_current_user() # lets see if we do not overwrite an existing item. created, post = create_entity(key_name, **kwds) if not created: return render_template('app:articles/form.html', form=form, status='error',msg='non-unique') return redirect(url_for('nut:articles/list'), 301) return render_template('app:articles/form.html', form=form)
def edit(request, key): post = Post.get_by_key_name(key) form = ArticleForm(request.form, obj=PostProxy(post), prefix='edit') status = False if request.method == 'POST' and form.validate(): key_name, kwds = prepare(form) # kwds['html'] = render_jinja('cache_body.html', body=kwds['body']) if post.key().name() == key_name: post = update_entity(key_name, **kwds) status = 'Updated' else: kwds['author'] = users.get_current_user() created, entity = create_entity(key_name, **kwds) if not created: return Response('sorry, post with that pub_date and title'\ + 'exists already') post.invalidate_cache() post.delete() post = entity status = 'Updated' post.invalidate_cache() if form.save.data: return redirect(url_for('nut:articles/list'), 301) return render_template('app:articles/form.html', form=form, post=post, status=status)