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: "Это поле обязательно для заполнения."
как мне решить эту проблему? Есть ли у кого-нибудь идеи?