def handle_post(self, email, account_info): if self.request.get("profile_entity_key"): profile_key = ndb.Key( urlsafe=self.request.get("profile_entity_key")) profile = profile_key.get() else: profile = Profile(parent=account_info.key, id=email) profile_key = profile.key.urlsafe() if self.get_uploads() and len(self.get_uploads()) == 1: logging.info("Received an image blob with this profile update.") media_blob = self.get_uploads()[0] profile.picture = media_blob.key() else: # There is a chance this is an edit in which case we should check for an existing blob key. original_blob_key = self.request.get("original_blob_key") if original_blob_key: logging.info( "Attaching original blob key (this must have been an edit or duplicate)" ) profile.picture = BlobKey(original_blob_key) profile.name = self.request.get("name") profile.location = self.request.get("location") profile.description = self.request.get("description") profile.dob = datetime.strptime(self.request.get("dob"), "%m/%d/%Y") profile.put() url_redir_str = "./user-profile?profile_entity_key=" + profile_key logging.info(url_redir_str) self.redirect(url_redir_str)
def _save_profile(cd): profile = Profile() profile.id = cd['id'] or None profile.description = cd['description'] profile.name = cd['name'] profile.save() profile.features = cd['features'] profile.save() return profile