Skip to main content
 首页 » 编程设计

python之Django 模型序列化器

2024年10月01日37kevingrace

我正在使用 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 
        } 

如何在 put 或 patch 中使用名称 ("configname", "macAddress") 进行更新?

请您参考如下方法:

对于驼峰式大小写,你必须使用解析器和渲染器:

$ 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,在 API 中使用 camelCase,无需自定义 to_representation 方法