serializers.py 文件源码

python
阅读 37 收藏 0 点赞 0 评论 0

项目:apimas 作者: grnet 项目源码 文件源码
def generate_model_serializer(name, model, model_fields, bases=None):
    """
    Generates a `ModelSerializer` given the model_fields.

    The specified `model_fields` is a tuple of model fields properties and
    the already created drf_fields. The former are passed to the `Meta` class
    of serializer in order to be created afterwards, whereas the latter are
    specified directly to the serializer class.
    """
    field_properties, drf_fields = classify_model_fields(
        model_fields)
    if not (field_properties or drf_fields):
        return None
    drf_fields = drf_fields or {}
    meta_cls_content = {
        'model': model,
        'fields': drf_fields.keys() + field_properties.keys(),
        'extra_kwargs': field_properties,
    }
    cls_content = {
        field_name: serializer
        for field_name, serializer in drf_fields.iteritems()
    }
    custom_bases = map(utils.LOAD_CLASS, bases or [])
    base_cls = tuple(custom_bases) + (ApimasModelSerializer,)
    meta_cls = type('Meta', (object,), meta_cls_content)
    cls_content['Meta'] = meta_cls
    return type(name, base_cls, cls_content)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号