如何使用驼峰命名法属性和 DRF 序列化器生成有效负载

gbr*_*non 5 django serialization json django-rest-framework

所以我需要使用一个 API,其中 JSON 字段都是驼峰命名法,并且我想将它们写在我的代码中作为 Snake_case。我怎样才能做到这一点?

我想要这样的东西:

serializer = MySerializer(data={'my_field': 'test'})
if serializer.is_valid():
  output_data = serializer.validated_data
  print(output_data)
  # {'myField': 'test'}
Run Code Online (Sandbox Code Playgroud)

Dan*_*kov 7

Vitaly Babiy 的 djangorestframework-camel-case 正是这样做的:https://github.com/vbabiy/djangorestframework-camel-case 你只需在 settings.py 中提及它,如下所示:

REST_FRAMEWORK = {

    'DEFAULT_RENDERER_CLASSES': (
        'djangorestframework_camel_case.render.CamelCaseJSONRenderer',
        'djangorestframework_camel_case.render.CamelCaseBrowsableAPIRenderer',
        # Any other renders
    ),

    'DEFAULT_PARSER_CLASSES': (
        # If you use MultiPartFormParser or FormParser, we also have a camel case version
        'djangorestframework_camel_case.parser.CamelCaseFormParser',
        'djangorestframework_camel_case.parser.CamelCaseMultiPartParser',
        'djangorestframework_camel_case.parser.CamelCaseJSONParser',
        # Any other parsers
    ),
}
Run Code Online (Sandbox Code Playgroud)

它可以工作,无需更改序列化器。