def edit(self, id): """ Edit method Edit a specific resource by id """ entity_id = int(id) resource_model_form = model_form(ResourceModel) entity = ResourceModel.get_by_id(entity_id) form = resource_model_form(self.request.POST, obj=entity) context = { 'action': 'Edit', 'id': id, 'form': form, 'submit_routename': 'resource.update' } self.render_response('resource.html', context)
def update(self, id): """ Update method Update an existing resource by id Uses posted data from Edit method """ # create form instance from the ResourceModel entity_id = int(id) resource_model_form = model_form(ResourceModel) entity = ResourceModel.get_by_id(entity_id) form = resource_model_form(self.request.POST, obj=entity) context = { 'id': id, 'action': 'Update', 'form': form, 'submit_routename': 'resource.update' } # since this method is only called from a post, # we do not need to check for request.method == "POST" # if self.form.validate() returns true, then save # the data if form.validate(): logging.debug('Form Validated!') # push form values into model form.populate_obj(entity) # save to data store key = entity.put() # redirect to index and/or edit form with new id logging.debug('key={0}'.format(key)) # redirect to the edit page for the created id return webapp2.redirect_to('resource.edit', id=key.id()) # the form did not validate, redisplay with errors return self.render_response('resource.html', context)