def put(self, request): ''' Create a new or or edit an existing proposal. ''' if not request.key: # Create a new proposal. proposal = Proposal() else: # Get the proposal to edit. proposal_key = ndb.Key(urlsafe=self.decrypt(request.key)) proposal = proposal_key.get() if not proposal: # TODO: What to do on error? return proposal_messages.Proposal() # Update the proposal. proposal.mutate_from_message(request) proposal.slug = "TODO: Remove me! (OF-64)" proposal.put() return proposal.to_message()