我在 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')
关于python - 如何处理在 javascript 中生成并在 python DRF 中使用的请求主体 JSON 字段的命名约定差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49467112/