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


Python SON.pop方法代码示例

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


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

示例1: to_mongo

# 需要导入模块: from bson import SON [as 别名]
# 或者: from bson.SON import pop [as 别名]
    def to_mongo(self, use_db_field=True, fields=None):
        """
        Return as SON data ready for use with MongoDB.
        """
        if not fields:
            fields = []

        data = SON()
        data['_id'] = None
        data['_cls'] = self._class_name

        # only root fields ['test1.a', 'test2'] => ['test1', 'test2']
        root_fields = {f.split('.')[0] for f in fields}

        for field_name in self:
            if root_fields and field_name not in root_fields:
                continue

            value = self._data.get(field_name, None)
            field = self._fields.get(field_name)

            if field is None and self._dynamic:
                field = self._dynamic_fields.get(field_name)

            if value is not None:
                f_inputs = field.to_mongo.__code__.co_varnames
                ex_vars = {}
                if fields and 'fields' in f_inputs:
                    key = '%s.' % field_name
                    embedded_fields = [
                        i.replace(key, '') for i in fields
                        if i.startswith(key)]

                    ex_vars['fields'] = embedded_fields

                if 'use_db_field' in f_inputs:
                    ex_vars['use_db_field'] = use_db_field

                value = field.to_mongo(value, **ex_vars)

            # Handle self generating fields
            if value is None and field._auto_gen:
                value = field.generate()
                self._data[field_name] = value

            if (value is not None) or (field.null):
                if use_db_field:
                    data[field.db_field] = value
                else:
                    data[field.name] = value

        # Only add _cls if allow_inheritance is True
        if not self._meta.get('allow_inheritance'):
            data.pop('_cls')

        return data
开发者ID:MongoEngine,项目名称:mongoengine,代码行数:58,代码来源:document.py

示例2: to_mongo

# 需要导入模块: from bson import SON [as 别名]
# 或者: from bson.SON import pop [as 别名]
    def to_mongo(self):
        from bson import SON
        from mongoengine import Document
        from mongoengine.base.common import ALLOW_INHERITANCE
        """Return as SON data ready for use with MongoDB.
        """
        data = SON()
        data["_id"] = None
        data['_cls'] = self._class_name

        for field_name in self._fields_ordered:
            value = self._data.get(field_name, None)
            field = self._fields.get(field_name)
            if field is None and self._dynamic:
                field = self._dynamic_fields.get(field_name)

            if value is not None:
                value = field.to_mongo(value)

            # Handle self generating fields
            if value is None and field._auto_gen:
                value = field.generate()
                self._data[field_name] = value

            if value is not None:
                data[field.db_field] = value

        # If "_id" has not been set, then try and set it
        if isinstance(self, Document):
            if data["_id"] is None:
                data["_id"] = self._data.get("id", None)

        if data['_id'] is None:
            data.pop('_id')

        # Only add _cls if allow_inheritance is True
        if (not hasattr(self, '_meta') or
           not self._meta.get('allow_inheritance', ALLOW_INHERITANCE)):
            data.pop('_cls')

        return data
        
        
开发者ID:core2062,项目名称:CORE-Scouting-Server,代码行数:43,代码来源:helper.py

示例3: to_dict_document

# 需要导入模块: from bson import SON [as 别名]
# 或者: from bson.SON import pop [as 别名]
def to_dict_document(self, serializer=None):
    data = SON()
    data["_id"] = None
    # data['_cls'] = self._class_name

    for field_name in self:
        value = self._data.get(field_name, None)
        field = self._fields.get(field_name)
        if field is None and self._dynamic:
            field = self._dynamic_fields.get(field_name)
        if value and isinstance(field, (ResourceField, ResourceIntField, DynamicResourceField)):
            pass
            # value = value.to_dict(fields=field.fields)
        if value is not None:
            value = field.to_dict(value, serializer=serializer)

        # Handle self generating fields
        if value is None and field._auto_gen:
            value = field.generate()
            self._data[field_name] = value

        if value is not None:
            data[field.db_field] = value

    # If "_id" has not been set, then try and set it
    Document = _import_class("Document")
    if isinstance(self, Document):
        if data["_id"] is None:
            data["_id"] = self._data.get("id", None)

    if data['_id'] is None:
        data.pop('_id')

    # Only add _cls if allow_inheritance is True
    # if (not hasattr(self, '_meta') or
    # not self._meta.get('allow_inheritance', ALLOW_INHERITANCE)):
    #     data.pop('_cls')

    return data
开发者ID:uptown,项目名称:django-town,代码行数:41,代码来源:hook.py


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