def create(self): """POST /pages: Create a new item""" # url('pages') create_form = page_form.bind(Page, data=request.POST) if request.POST and create_form.validate(): page_args = { 'title': create_form.title.value, 'content': create_form.content.value } page = Page(**page_args) Session.add(page) Session.commit() redirect('/pages/show/%s' % page.id) context = { 'page_form': create_form.render() } return render('pages/edit.html', context)
def delete(self, id): """DELETE /pages/id: Delete an existing item""" # Forms posted to this method should contain a hidden field: # <input type="hidden" name="_method" value="DELETE" /> # Or using helpers: # h.form(url('page', id=ID), # method='delete') # url('page', id=ID) if id is None: abort(404) page = Session.query(Page).filter_by(id = id).first() if page is None: abort(404) if request.params.get('_method') == 'DELETE': Session.delete(page) Session.commit() context = {'confirm': True} else: context = {'id': id} return render('pages/delete.html', context)
def update(self, id): """PUT /pages/id: Update an existing item""" # Forms posted to this method should contain a hidden field: # <input type="hidden" name="_method" value="PUT" /> # Or using helpers: # h.form(url('page', id=ID), # method='put') # url('page', id=ID) if id is not None: page = Session.query(Page).filter_by(id = id).first() if page is None: abort(404) edit_form = page_form.bind(page, data=request.POST) if request.POST and edit_form.validate(): edit_form.sync() Session.commit() redirect('/pages/show/%s' % id) context = { 'edit_form': edit_form.render(), 'page': page } return render('pages/edit.html', context)