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)