DRF - APIView и сериализация модели с несколькими внешними ключами(Пользователь)

Как сохранить данные нескольких внешних ключей (User)?

модели

class HireProfessional(models.Model):
    hireBy = models.ForeignKey(User, related_name='owner', on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="user")
    hire_start_date_time = models.DateTimeField(default=timezone.now)
    hire_end_date_time = models.DateTimeField(default=timezone.now)

seriliazer

class HireProfessionalSerializer(serializers.ModelSerializer):
    

    class Meta:
        model = HireProfessional
        fields = '__all__'

просмотров


class HireProfessionalCreateApp(APIView):
    permission_classes = (IsAuthenticated, IsClientUser,)

    def get_user(self):
        user = self.request.user
        return user



    def post(self, request, pk, format=None):
        user = User.objects.filter(id=pk).first()
        serializer = HireProfessionalSerializer(data = request.data, instance=user)
        data = {}
        if serializer.is_valid():
            hire = serializer.save(owner=self.get_user())
            data['hireTo'] = hire.hireTo
            

            return JsonResponse (
            {
                "message":"professional hired success.",
                "success" : True,
                "result" : data,
                "status" : status.HTTP_201_CREATED
            }
            )
        else:
            data = serializer.errors
        return Response(data)

Возвращает hireBy, user: "Это поле обязательно для заполнения."

как мне решить эту проблему? Есть ли у кого-нибудь идеи?

Вернуться на верх