예제 #1
0
    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)
예제 #2
0
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