Python Django rest框架-解析post()中的键值对
当用户输入POST API数据时,他们将输入A和B键值对。我想修改post()以满足我的需要。我想在用户单击提交或发布API数据时解析以下内容 在api视图上返回这些字段之前(或当用户单击提交时),是否仍要解析这些字段? 这就是用户试图使用post API发布的内容Python Django rest框架-解析post()中的键值对,python,django,django-rest-framework,Python,Django,Django Rest Framework,当用户输入POST API数据时,他们将输入A和B键值对。我想修改post()以满足我的需要。我想在用户单击提交或发布API数据时解析以下内容 在api视图上返回这些字段之前(或当用户单击提交时),是否仍要解析这些字段? 这就是用户试图使用post API发布的内容 [ { "A": "1234", "B": "12345", }, ] 我所做的: views.py class MyModelList(generics.ListCreateAPI
[
{
"A": "1234",
"B": "12345",
},
]
我所做的:
views.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)
models.py
class Models(models.Model):
A = models.CharField(max_length=255, null=False)
B = models.CharField(max_length=255, null=False)
我想你的意思是发送单个对象,而不是对象列表。因为
ListCreateAPIView
的create
函数将只在模型中创建一个对象
因此,如果用户发送包含以下数据的POST请求:
{
"A": "1234",
"B": "12345",
}
您可以从请求.data
字典访问它
def post(self, request, *args, **kwargs):
A = request.data.get('A', None)
B = request.data.get('B', None)
return self.create(request, *args, **kwargs)
如果A或B为None,则表示数据未与请求一起正确发送。我认为您的意思是发送单个对象,而不是对象列表。因为
ListCreateAPIView
的create
函数将只在模型中创建一个对象
因此,如果用户发送包含以下数据的POST请求:
{
"A": "1234",
"B": "12345",
}
您可以从请求.data
字典访问它
def post(self, request, *args, **kwargs):
A = request.data.get('A', None)
B = request.data.get('B', None)
return self.create(request, *args, **kwargs)
如果A或B为None,则表示数据未与请求一起正确发送。您需要将数据解析为密钥对。试试这个:
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"})
您需要将数据解析为密钥对。试试这个:
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"})