当前位置: 首页>>代码示例>>Python>>正文


Python Speaker.name方法代码示例

本文整理汇总了Python中models.Speaker.name方法的典型用法代码示例。如果您正苦于以下问题:Python Speaker.name方法的具体用法?Python Speaker.name怎么用?Python Speaker.name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在models.Speaker的用法示例。


在下文中一共展示了Speaker.name方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _createSessionObject

# 需要导入模块: from models import Speaker [as 别名]
# 或者: from models.Speaker import name [as 别名]
    def _createSessionObject(self, request, websafeConferenceKey):
        """Create Session object and return it."""
        # preload necessary data items

        # check user login
        user = endpoints.get_current_user()
        if not user:
            raise endpoints.UnauthorizedException('Authorization required')
        user_id = getUserId(user)

        # check conference exists
        c_key = None
        try:
            c_key = ndb.Key(urlsafe=websafeConferenceKey)
            conf = c_key.get()
        except Exception:
            conf = None
        if not conf:
            raise endpoints.NotFoundException(
                'No conference found with key: %s' % websafeConferenceKey)
        # check user is organizer of conference
        if conf.organizerUserId != user_id:
            raise endpoints.UnauthorizedException(
                'Only conference organizer can add '
                'sessions to this conference')

        # check session name and speaker email both are included in the form
        if not request.name:
            raise endpoints.BadRequestException(
                "Session 'name' field required")

        if not request.speakerEmail:
            raise endpoints.BadRequestException("Speaker email field required")

        # check that there is no other session with the same name
        sessions = Session.query(Session.name == request.name).count()
        if sessions:
            raise endpoints.BadRequestException("There is already a session named %s" % request.name)

        # retrieve the speaker using the provided speaker email. If not exists,
        # create a new speaker with the provided name and email
        speaker_key = ndb.Key(Speaker, request.speakerEmail)
        speaker = speaker_key.get()
        if not speaker:
            # there is no speaker, try to create it
            # the speaker name is now required
            if not request.speakerName:
                raise endpoints.BadRequestException(
                    "Speaker name field required")

            # create the speaker entity
            speaker = Speaker()
            speaker.name = request.speakerName
            speaker.email = request.speakerEmail
            speaker.key = speaker_key
            speaker.put()

        # copy request values to to a new dictionary, and remove
        # unnecessary ones
        data = {field.name: getattr(request, field.name) for field in
                request.all_fields()}
        data['speakerId'] = speaker.email

        # delete extra fields from data
        del data['speakerName']
        del data['speakerEmail']
        del data['websafeConferenceKey']

        # add default values for  missing fields
        # (both data model & outbound Message)
        for df in SESSION_DEFAULTS:
            if data[df] in (None, []):
                data[df] = SESSION_DEFAULTS[df]
                setattr(request, df, SESSION_DEFAULTS[df])

        # properly parse dates and times
        if data['date']:
            data['date'] = datetime.strptime(data['date'][:10],
                                             "%Y-%m-%d").date()
        data['startTime'] = datetime.strptime(data['startTime'],
                                              "%H:%M").time()

        # generate a session key, using conference key as parent
        session_id = Session.allocate_ids(size=1, parent=c_key)[0]
        session_key = ndb.Key(Session, session_id, parent=c_key)
        data['key'] = session_key

        # create the session entity and store it in the Datastore
        session = Session(**data)
        session.put()
        return session
开发者ID:albertoanguita,项目名称:ConferenceApp_Udacity,代码行数:93,代码来源:conference.py


注:本文中的models.Speaker.name方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。