如何通过列表操作发出 Post 请求以在 DRF 的视图集中创建函数

How to make Post request by list action for create function in viewsets in DRF

我想发送 post 测试请求。它适用于 postman,但不适用于我的测试用例。如何通过 post 请求提供数据。 Views.py,

class PersonalInfoAPI(viewsets.ViewSet):
    permission_classes = [IsOwnerPermission]

    def get_object(self, pk):
        obj = get_object_or_404(Employee.objects.all(), pk=pk)
        self.check_object_permissions(self.request, obj)
        return obj

    def create(self, request):
        personal_info = JSONParser().parse(request)
         .....
    return ...

test.py

 url = reverse('employee1-list')
        self.client = Client(HTTP_AUTHORIZATION='Token ' + token.key)
        resp1 = self.client.post(url, {"data": {
            "appraisal_master_id": 1,
            "personal_info": {
                "employee_id": 1,
                "experience": "abcd",
                "education": "Nonoooo"
            }
        }
        }, format='json')
        print(resp1)
        self.assertEqual(resp1.status_code, 200)

我遇到了 400 错误。请告诉任何人我怎样才能正确地传递数据,..

我找到了解决方案。当我发出传递字典数据的请求时。然后,我转换成 json 它工作正常。

url = reverse('employee1-list')
        self.client = Client(HTTP_AUTHORIZATION='Token ' + token.key)
        resp1 = self.client.post(url, data=data, content_type="application/json")
        print(resp1)
        self.assertEqual(resp1.status_code, 201)