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


Python serializers.ManyRelatedField方法代码示例

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


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

示例1: update_relationship_from_serializer

# 需要导入模块: from rest_framework import serializers [as 别名]
# 或者: from rest_framework.serializers import ManyRelatedField [as 别名]
def update_relationship_from_serializer(self, rv, field_instance, foreign_key_as_list):
        if not isinstance(field_instance, (relations.PrimaryKeyRelatedField, relations.ManyRelatedField,
                                           relations.SlugRelatedField)):
            return

        if not hasattr(field_instance, 'queryset') or field_instance.queryset is None:
            return

        related_model = field_instance.queryset.model

        if not foreign_key_as_list:
            self.update_related_endpoint(rv, related_model)
        else:
            if not hasattr(field_instance, 'queryset') or field_instance.queryset is None:
                return
            # FIXME: we may not need this code as the serializer field has a 'choices' attribute
            self.set_choices_from_qs(rv, field_instance.queryset) 
开发者ID:drf-forms,项目名称:drf-schema-adapter,代码行数:19,代码来源:get_field_dict.py

示例2: get_related_field

# 需要导入模块: from rest_framework import serializers [as 别名]
# 或者: from rest_framework.serializers import ManyRelatedField [as 别名]
def get_related_field(field):
    if isinstance(field, ManyRelatedField):
        return field.child_relation

    if isinstance(field, ListSerializer):
        return field.child

    return field 
开发者ID:kevin-brown,项目名称:drf-json-api,代码行数:10,代码来源:utils.py

示例3: is_related_many

# 需要导入模块: from rest_framework import serializers [as 别名]
# 或者: from rest_framework.serializers import ManyRelatedField [as 别名]
def is_related_many(field):
    if hasattr(field, "many"):
        return field.many

    if isinstance(field, ManyRelatedField):
        return True

    if isinstance(field, ListSerializer):
        return True

    return False 
开发者ID:kevin-brown,项目名称:drf-json-api,代码行数:13,代码来源:utils.py

示例4: _get_related_fields

# 需要导入模块: from rest_framework import serializers [as 别名]
# 或者: from rest_framework.serializers import ManyRelatedField [as 别名]
def _get_related_fields(self, fields, id_field):
        return [k for (k, v) in fields
                if k != id_field
                and (isinstance(v, HyperlinkedRelatedField)
                or isinstance(v, HyperlinkedIdentityField)   
                or isinstance(v, ItemLinkField)
                or (isinstance(v, ManyRelatedField)
                    and isinstance(v.child_relation, HyperlinkedRelatedField)))] 
开发者ID:FNNDSC,项目名称:ChRIS_ultron_backEnd,代码行数:10,代码来源:renderers.py

示例5: get_field_info

# 需要导入模块: from rest_framework import serializers [as 别名]
# 或者: from rest_framework.serializers import ManyRelatedField [as 别名]
def get_field_info(self, field):
        """
        Given an instance of a serializer field, return a dictionary
        of metadata about it.
        """
        field_info = OrderedDict()
        field_info['type'] = self.label_lookup[field]
        field_info['required'] = getattr(field, 'required', False)

        attrs = [
            'read_only', 'label', 'help_text',
            'min_length', 'max_length',
            'min_value', 'max_value'
        ]

        for attr in attrs:
            value = getattr(field, attr, None)
            if value is not None and value != '':
                field_info[attr] = force_text(value, strings_only=True)

        if getattr(field, 'child', None):
            field_info['child'] = self.get_field_info(field.child)
        elif getattr(field, 'fields', None):
            field_info['children'] = self.get_serializer_info(field)

        if (not field_info.get('read_only') and
            not isinstance(field, (serializers.RelatedField, serializers.ManyRelatedField)) and
                hasattr(field, 'choices')):
            field_info['choices'] = [
                {
                    'value': choice_value,
                    'display_name': force_text(choice_name, strings_only=True)
                }
                for choice_value, choice_name in field.choices.items()
            ]

        return field_info 
开发者ID:BeanWei,项目名称:Dailyfresh-B2C,代码行数:39,代码来源:metadata.py

示例6: get_read_only

# 需要导入模块: from rest_framework import serializers [as 别名]
# 或者: from rest_framework.serializers import ManyRelatedField [as 别名]
def get_read_only(self, name, field_instance):
        if name == '__str__':
            return True

        if field_instance.read_only and not isinstance(field_instance, serializers.ManyRelatedField):
            return True

        return False 
开发者ID:drf-forms,项目名称:drf-schema-adapter,代码行数:10,代码来源:get_field_dict.py

示例7: get_field_info

# 需要导入模块: from rest_framework import serializers [as 别名]
# 或者: from rest_framework.serializers import ManyRelatedField [as 别名]
def get_field_info(self, field):
        """
        Given an instance of a serializer field, return a dictionary
        of metadata about it.
        """
        field_info = OrderedDict()
        serializer = field.parent

        if isinstance(field, serializers.ManyRelatedField):
            field_info['type'] = self.type_lookup[field.child_relation]
        else:
            field_info['type'] = self.type_lookup[field]

        try:
            serializer_model = getattr(serializer.Meta, 'model')
            field_info['relationship_type'] = self.relation_type_lookup[
                getattr(serializer_model, field.field_name)
            ]
        except KeyError:
            pass
        except AttributeError:
            pass
        else:
            field_info['relationship_resource'] = get_related_resource_type(field)

        field_info['required'] = getattr(field, 'required', False)

        attrs = [
            'read_only', 'write_only', 'label', 'help_text',
            'min_length', 'max_length',
            'min_value', 'max_value', 'initial'
        ]

        for attr in attrs:
            value = getattr(field, attr, None)
            if value is not None and value != '':
                field_info[attr] = force_str(value, strings_only=True)

        if getattr(field, 'child', None):
            field_info['child'] = self.get_field_info(field.child)
        elif getattr(field, 'fields', None):
            field_info['children'] = self.get_serializer_info(field)

        if (
            not field_info.get('read_only') and
            not field_info.get('relationship_resource') and
            hasattr(field, 'choices')
        ):
            field_info['choices'] = [
                {
                    'value': choice_value,
                    'display_name': force_str(choice_name, strings_only=True)
                }
                for choice_value, choice_name in field.choices.items()
            ]

        if hasattr(serializer, 'included_serializers') and 'relationship_resource' in field_info:
            field_info['allows_include'] = field.field_name in serializer.included_serializers

        return field_info 
开发者ID:django-json-api,项目名称:django-rest-framework-json-api,代码行数:62,代码来源:metadata.py


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