Django дублирует файл для всех записей с помощью M2M, который является самоссылающимся

У меня есть Serializer & APIview, где я загружаю файл, он должен быть загружен и в другие связанные записи.

class Record(models.Model):
    name = models.CharField(max_length = 122)
    related_records = models.ManyToManyField('self', null = True)

class RecordDocument(models.Model):
    record = models.ForeignKey(Record, related_name = 'documents', null = True, 
                    blank= True )
    file = models.FileField(max_length=255, blank=True, null=True)



class RecordDocumentSerializer(serializers.ModelSerializer):
    save_documents_to_related_records = serializers.BooleanField()
    
    class Meta:
        model = RecordDocument
        fields = ( 'upload_to_related_cases', 'file' )
   

class RecordDocumentUploadView(APIView):
    def post(self, request, *args, **kwargs):
    
    'how do i get serializers field **save_documents_to_related_records** and save 
     the file on  **related_records** which is not used in serializer till now if 
     there are any inside it'

Вы можете попробовать это.

class RecordDocumentUploadView(APIView):
    def post(self, request, *args, **kwargs):
        serializer = RecordDocumentSerializer(data = request.data)
        if serializer.is_valid():
            input_data = serializer.validated_data
            flag = input_data.pop('save_documents_to_related_records')                
            new_document = RecordDocument.objects.create(**input_data)
            if flag:
                ...
        else:
            return Response(status = status.HTTP_400_BAD_REQUEST)
Вернуться на верх