Skip to main content
 首页 » 编程设计

python之如何处理在 javascript 中生成并在 python DRF 中使用的请求主体 JSON 字段的命名约定差异

2025年01月19日28pander-it

我在 Python DRF 中创建 Rest API,并在浏览器的 angularJS 中使用它。我面临的问题是 javascript 和 python 中变量名命名约定的差异。

Javascript使用驼峰命名法命名变量名,而python使用下划线命名法。

因此,当我通过 angularjs 发送请求时,示例请求 JSON 正文具有以下格式:-

user_dtls = {"firstName": "Mangu Singh", "lastName": "Rajpurohit"} 

但在 Python 中,它们表示为 first_name 和 last_name。 我正在使用 ModelSerializer,同时根据 field_name 自动读取请求并填充模型字段。

但是,由于请求正文(通过 javascript 发送)和序列化程序中的字段名称不同,我必须编写大量样板代码来进行此转换。

DRF 是否提供任何机制来处理这种情况?处理这种情况的最 pythonic 方法是什么。

提前致谢。

请您参考如下方法:

序列化器中有一个source 选项。使用它,您可以通过覆盖它们来重命名模型序列化程序字段。例如

class UserSerializer(serializer.ModelsSerializer): 
    firstName = serializer.CharField(source="first_name", max_length=100) 
    lastName = serializer.CharField(source="last_name", max_length=100) 
 
    class Meta: 
        model = User 
        fields = ('firstName', 'lastName')