Django rest framework 如何在django中使QueryDict实例可变

Django rest framework 如何在django中使QueryDict实例可变,django-rest-framework,Django Rest Framework,我有一个序列化类,如下所示: class EmployeeSerializer(serializers.ModelSerializer): # TODO: Define serializer fields here bio = BioSerializer() designation = GroupListSerializer() department = GroupListSerializer() #user = UserSerializer()

我有一个序列化类,如下所示:

class EmployeeSerializer(serializers.ModelSerializer):
    # TODO: Define serializer fields here
    bio = BioSerializer()
    designation = GroupListSerializer()
    department = GroupListSerializer()
    #user = UserSerializer()
    class Meta:
        model = Employee
        fields = '__all__'
        # fields = ['user','tax_id_number','account_number','joining_date','designation','department','gender','marital_status','id_type','birthday','ethnicity','preferred_language','phone_number','em_contact','address']


    def create(self,validated_data):
        bio = validated_data.pop('bio')
        designation = validated_data.pop('designation')
        department = validated_data.pop('department')

        new_bio = Bio.objects.create(**bio)

        new_designation = Groups.objects(**designation) 
        new_department = Groups.objects(**department)
        employee = list(Employee.objects.create(designation=new_designation,department=new_department,
                    bio=new_bio,**validated_data))
        employee = json.dumps(employee)
        return employee
我的观点如下:

class EmployeeRecordView(generics.CreateAPIView):
    queryset=Employee.objects.all()
    serializer_class=EmployeeSerializer

    def post(self, request):

        serializer = EmployeeSerializer(data=request.data)
        if serializer.is_valid(raise_exception=ValueError):
            serializer.create(validated_data=request.data)
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.error_messages,
                        status=status.HTTP_400_BAD_REQUEST)
问题是,当我尝试发出“POST”请求时,我会得到以下日志:

Exception Type: AttributeError
Exception Value:    
This QueryDict instance is immutable

如何使
POST
ing成功。我在上面实现的这种方法哪里出了问题?

你不应该调用
序列化程序。自己创建
我相信引发错误的那一行是
序列化程序。创建(已验证的数据=请求.数据)
。您可以尝试以下方法:

...
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
另一件事是,当您设置
raise\u exception=True
时,它已经抛出一个错误响应,因此您不需要将其放入
if/else
块中