当用户输入 POST API 数据时,他们将输入 A 和 B 键值对。我想修改 post() 以满足我的需要。我想在用户点击提交或发布 API 数据时解析以下内容。
是否要在 api View 返回这些字段之前(或当用户单击提交时)解析这些字段?
这是用户尝试使用 POST API 发布的内容。
[
{
"A": "1234",
"B": "12345",
},
]
我做了什么:
View .py
class MyModelList(generics.ListCreateAPIView):
queryset = MyModel.objects.all()
serializer_class = MyModeSerializer
permission_classes = (permissions.IsAuthenticated,)
def post(self, request, *args, **kwargs):
##parse A values from key value pair so that value == 1234
##parse B values from key value pair so that value == 12345
return self.create(request, *args, **kwargs)
模型.py
class Models(models.Model):
A = models.CharField(max_length=255, null=False)
B = models.CharField(max_length=255, null=False)
最佳答案
您需要将数据解析为 key 对。试试这个:
class MyModelList(generics.ListCreateAPIView):
queryset = MyModel.objects.all()
serializer_class = MyModeSerializer
permission_classes = (permissions.IsAuthenticated,)
def post(self, request, *args, **kwargs):
pairs = request.data()
for pair in pairs:
model = Models.objects.create(**pair)
return Response({"results": "saved"})
关于python - Django Rest 框架 - 解析 post() 中的键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54771589/