Как вызвать 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)