Как вызвать PATCH api запрос из другого PATCH api запроса?

У меня есть две модели, одна - Master, а другая - Batch. Когда я вызываю запрос PATCH на моей Batch. Он обновляет информацию о моей партии, но не обновляет то же самое в Master, при обновлении может произойти столкновение с другими классами инструкторов. Как я могу этого добиться?

class Master(models.Model):
    instructor = models.ForeignKey('Instructor', on_delete=models.PROTECT)  # first mandatory field
    zoom_link = models.CharField(max_length=200, blank=True, null=True)
    

class Batch(models.Model):
    instructor = models.ForeignKey('Instructor', on_delete=models.PROTECT)
     
      def save(self, *args, **kwargs):
        super().save(*args, **kwargs)
        if not self.batch_id:
            self.batch_id = generate_unique_id(self)
        Batch.objects.filter(id=self.id).update(batch_id=self.batch_id)
        try:
            put_batch_on_calender(self)
            print(f"BATCH '{self.batch_id}' ADDED SUCCESSFULLY")
        except:
            Batch.objects.filter(batch_id=self.id).delete()
            
@api_view(['PATCH')
def batch_patch(request,pk):
    if request.method == 'PATCH':
       
        instructor = request.query_params.get('instructor')
        batches = Batch.objects.filter(status=NEW)
        if pk or instructor:
            if pk:
                batch = Batch.objects.get(id=pk)
                serializer = BatchCreateSerializer(batch, data=request.data, partial=True)
            elif instructor:
                batch = batches.filter(instructor=instructor)
                serializer = BatchCreateSerializer(batch, data=request.data, many=True, partial=True)
            if serializer.is_valid():
                serializer.save()
                return Response({'message': 'Batch updated successfully'}, status=status.HTTP_200_OK)
            else:
                return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

        return Response({'message': 'Batch updated successfully'}, status=status.HTTP_200_OK)
Вернуться на верх