json - 如何使用带有 DRF 序列化程序的 camelCase 属性生成有效负载
问题描述
所以我需要使用一个 API,JSON 字段都是 camelCase,我想在我的代码中将它们写为snake_case。我怎样才能做到这一点?
我想要这样的东西:
serializer = MySerializer(data={'my_field': 'test'})
if serializer.is_valid():
output_data = serializer.validated_data
print(output_data)
# {'myField': 'test'}
解决方案
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
),
}
它可以工作,无需更改您的序列化程序。
推荐阅读
- r - 在 R 中使用 ggplot2 复制图形
- php - Elementor 制作 swiper 内部
- java - 如何在 Kotlin 中获取用户输入以创建列表?
- python - 可以在虚拟环境中安装 Python 2 `gtop` 模块
- python - 尝试从 codewars 分配中操作字符串时收到退出代码 (1)?我怎样才能以不同的方式做到这一点并避免索引错误?
- haskell - 不同类型的重载/多态函数
- python - 我试图安装 pyinstaller 并得到了这个
- python - AttributeError:“类”对象没有属性“用户”discord.py
- ios - 尝试在 UserDefaults 中保存数据并在列表视图中显示它们
- sql - 如何在雪花表中添加记录的创建时间和最后更新