我正在使用django-rest-framework
- 我想重命名(在列表中)模型序列化程序中的字段,并使用我在列表中重命名的相同名称进行更新(更新)。
class ConfiglistSerializer(serializers.ModelSerializer):
class Meta:
model = Config
fields = ('id', 'configname', 'mac_address')
def to_representation(self, obj):
return {
'id': obj.id,
'configname': obj.name,
'macAddress': obj.mac_address
}
如何使用("configname" , "macAddress")
或put
中的patch
名称进行更新?
答案 0 :(得分:2)
你必须为camel case使用解析器和渲染器:
$ pip install djangorestframework-camel-case
并将渲染和解析器添加到django设置文件中。
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'djangorestframework_camel_case.render.CamelCaseJSONRenderer',
# Any other renders
),
'DEFAULT_PARSER_CLASSES': (
'djangorestframework_camel_case.parser.CamelCaseJSONParser',
# Any other parsers
),
}
通过这种方式,您可以在序列化程序中使用snake_case,而无需自定义to_representation
方法的API中的camelCase
答案 1 :(得分:0)
无需在更新时执行任何操作。只需使用macAddress = serializers.CharField(source='mac_address')
并指定源参数来定义您想要的名称字段。 rest-framwork serilizer将做其他部分。
对于前。 id
请参阅此处http://www.django-rest-framework.org/api-guide/fields/以了解序列化工具字段的工作原理