Переопределить метод создания

Новичок в drf.У меня есть входные данные в формате json, как показано ниже:

{
"name":"df",
"email":"d@gmail.com",
"age":"21",
"gender":"Male",
"phone":"234",
"total_price":86,
"advance":0,
"due":86,
"selected":[{"id":8,"name":"sdf","price":34},{"id":9,"name":"dg","price":52}]
}

Ниже представлен мой views.py. Я хочу переопределить метод create для входных данных json, но не знаю, как это сделать.

class PatientEntry(generics.CreateAPIView):
    queryset = Test.objects.all()
    serializer_class = PatientSerializer

    def create(self, request, *args, **kwargs):
        many = isinstance(request.data, list)
        serializer = self.get_serializer(data=request.data,many=True)
        serializer.is_valid(raise_exception=True)
        self.perform_create(serializer)

        headers = self.get_success_headers(serializer.data)
        return Response(serializer.data, headers=headers)

ModelSerializer угадает требуемое поле через ваши модели. Поскольку ваши модели определяют требуемые свойства, поле сериализатора также будет иметь их в качестве требуемых.

Чтобы переопределить это, вам нужно либо ослабить требования к вашим моделям, либо сказать сериализатору, чтобы он переопределил 'required' = True:

class Meta:
    model = YourModel
    fields = '__all__'
    extra_kwargs = {'mymissingfield': {'required': False}}
Вернуться на верх