Можно ли добавить данные во вложенные, просто используя их UUID?

Я совсем новичок в DRF и пытаюсь построить систему с Document и Category. Вот models.py для этого

class TimeStampedModel(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True

class Document(TimeStampedModel):
    unique_id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
    title = models.CharField(max_length=50, blank=True, default="")
    description = models.TextField(blank=True, default="")
    image = models.ImageField(blank=True, null=True)
    category = models.ForeignKey(
        'Category',
        on_delete=models.SET_NULL,
        related_name='documents',
        blank=True,
        null=True,
    )

    class Meta:
        ordering = ("-created_at",)


class Category(TimeStampedModel):
    unique_id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
    name = models.CharField(max_length=50, blank=True, default="")
    description = models.TextField(blank=True, default="")

    class Meta:
        ordering = ("-created_at",)

    def __str__(self):
        return self.name

И Serializes.py

class DocumentViewSet(ModelViewSet):
    serializer_class = DocumentSerializer
    queryset = Document.objects.all()
    lookup_field = "unique_id"

    @action(detail=True, methods=['delete'])
    def delete_document(self, request, unique_id):
        """Delete document"""
        docs = Document.objects.get(unique_id=unique_id)
        try:
            docs.delete()
            return Response(status=status.HTTP_204_NO_CONTENT,
                            data={'message': f'Delete successfully with {docs.unique_id}'})
        except:
            return Response(data={'message': f'Delete failed with {docs.unique_id}'})


class CategoryViewSet(ModelViewSet):
    serializer_class = CategorySerializer
    queryset = Category.objects.all()
    lookup_field = "unique_id"

    filterset_fields = "__all__"

    @action(detail=True, methods=['delete'])
    def delete_category(self, request, unique_id):
        """Delete category"""
        cats = Category.objects.get(unique_id=unique_id)
        try:
            cats.delete()
            return Response(status=status.HTTP_204_NO_CONTENT,
                            data={'message': f'Delete successfully with {cats.name}'})
        except cats.DoesNotExist:
            return Response(status=status.HTTP_404_NOT_FOUND,
                            data={'message': f'Delete failed with {cats.name}'})

Я пытаюсь обновить название категории, описание и добавить документ в категорию, используя UUID документа с помощью этих JSON

{
    "name": "Category1",
    "description": "Category test",
    "documents": ["63149a94-73af-4134-bc13-3270f0c83b4a"]
}

А что бы обновить название и описание категории и документы с этим UUID будут добавлены в нее без редактирования других полей документов, таких как название, описание. Я нашел много способов, но большинство из них заключается в том, что нужно добавить lib документа, включая название и описание документа, чтобы иметь возможность добавить его, который может редактировать документ или только может редактировать имя и описание категории, но UUID документа не может идти в категорию.

Прошу прощения, если это неправильный вопрос, а также прошу прощения за мой английский. Спасибо всем

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