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

How to handle difference in the naming convention of request body JSON fields produced in javascript and consumed in python DRF?

我正在 Python DRF 中创建 Rest API,并在浏览器中的 angularJS 中使用它。我面临的问题是 javascript 和 python.

中变量名命名约定的差异

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

因此,当我通过 angularjs 发送请求时,示例请求 JSON 主体的格式如下:-

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

但在python中,它们表示为first_namelast_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')