如何处理javascript中生成的请求体JSON字段和python DRF中使用的请求体JSON字段的命名约定的差异?
我正在用pythondrf创建restapi,并在浏览器的angularJS中使用它。我面临的问题是wrt,javascript和python中变量名命名约定的差异 Javascript使用驼峰符号来命名变量名,而python使用下划线符号 因此,当我通过angularjs发送请求时,示例请求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中,它们表示为名字和姓氏。
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')