Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理javascript中生成的请求体JSON字段和python DRF中使用的请求体JSON字段的命名约定的差异?_Python_Angularjs_Rest_Django Rest Framework_Naming Conventions - Fatal编程技术网

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

如何处理javascript中生成的请求体JSON字段和python DRF中使用的请求体JSON字段的命名约定的差异?,python,angularjs,rest,django-rest-framework,naming-conventions,Python,Angularjs,Rest,Django Rest Framework,Naming Conventions,我正在用pythondrf创建restapi,并在浏览器的angularJS中使用它。我面临的问题是wrt,javascript和python中变量名命名约定的差异 Javascript使用驼峰符号来命名变量名,而python使用下划线符号 因此,当我通过angularjs发送请求时,示例请求JSON正文的格式如下:- user_dtls = {"firstName": "Mangu Singh", "lastName": "Rajpurohit"} 但在python中,它们表示为名字和姓氏。

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

Javascript使用驼峰符号来命名变量名,而python使用下划线符号

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

user_dtls = {"firstName": "Mangu Singh", "lastName": "Rajpurohit"}
但在python中,它们表示为
名字
姓氏
。 我正在使用
ModelSerializer
,同时根据字段名称自动读取请求并填充模型字段

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

DRF是否提供任何机制来处理这种情况?对付这种情况,什么才是最适合的方法呢


提前感谢。

序列化程序中有一个
源代码
选项。使用它,您可以通过重写模型序列化程序字段来重命名它们。比如说

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')