python类MultipleChoiceField()的实例源码

test_field_converter.py 文件源码 项目:graphene-django 作者: graphql-python 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def test_should_multiplechoicefield_convert_to_list_of_string():
    field = assert_conversion(serializers.MultipleChoiceField, graphene.List, choices=[1,2,3])

    assert field.of_type == graphene.String
serializers.py 文件源码 项目:adjutant 作者: openstack 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def __init__(self, *args, **kwargs):
        super(UpdateProjectQuotasSerializer, self).__init__(*args, **kwargs)
        # NOTE(amelia): This overide is mostly in use so that it can be tested
        # However it does take into account the improbable edge case that the
        # regions have changed since the server was last started
        self.fields['regions'] = serializers.MultipleChoiceField(
            choices=get_region_choices())
schemas.py 文件源码 项目:sdining 作者: Lurance 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def field_to_schema(field):
    title = force_text(field.label) if field.label else ''
    description = force_text(field.help_text) if field.help_text else ''

    if isinstance(field, serializers.ListSerializer):
        child_schema = field_to_schema(field.child)
        return coreschema.Array(
            items=child_schema,
            title=title,
            description=description
        )
    elif isinstance(field, serializers.Serializer):
        return coreschema.Object(
            properties=OrderedDict([
                (key, field_to_schema(value))
                for key, value
                in field.fields.items()
            ]),
            title=title,
            description=description
        )
    elif isinstance(field, serializers.ManyRelatedField):
        return coreschema.Array(
            items=coreschema.String(),
            title=title,
            description=description
        )
    elif isinstance(field, serializers.RelatedField):
        return coreschema.String(title=title, description=description)
    elif isinstance(field, serializers.MultipleChoiceField):
        return coreschema.Array(
            items=coreschema.Enum(enum=list(field.choices.keys())),
            title=title,
            description=description
        )
    elif isinstance(field, serializers.ChoiceField):
        return coreschema.Enum(
            enum=list(field.choices.keys()),
            title=title,
            description=description
        )
    elif isinstance(field, serializers.BooleanField):
        return coreschema.Boolean(title=title, description=description)
    elif isinstance(field, (serializers.DecimalField, serializers.FloatField)):
        return coreschema.Number(title=title, description=description)
    elif isinstance(field, serializers.IntegerField):
        return coreschema.Integer(title=title, description=description)

    if field.style.get('base_template') == 'textarea.html':
        return coreschema.String(
            title=title,
            description=description,
            format='textarea'
        )
    return coreschema.String(title=title, description=description)


问题


面经


文章

微信
公众号

扫码关注公众号