Получается вложенный словарь в rest_framework

Я должен получать такой результат:

example:
        id: "элемент_1_2"
        url: null
        type: FOLDER
        parentId: null
        date: "2022-05-28T21:12:01.000Z"
        size: 12
        children:
          - url: "/file/url1"
            id: "элемент_1_3"
            size: 4
            date: "2022-05-28T21:12:01.000Z"
            type: FILE
            parentId: "элемент_1_2"
          - type: FOLDER
            url: null
            id: "элемент_1_1"
            date: "2022-05-26T21:12:01.000Z"
            parentId: "элемент_1_2"
            size: 8
            children:
              - url: "/file/url2"
                id: "элемент_1_4"
                parentId: "элемент_1_1"
                date: "2022-05-26T21:12:01.000Z"
                size: 8
                type: FILE

Но у меня в поле type получается вложенный словарь:

{
        "id": "1",
        "type": {
            "description": "FOLDER"
        },
        "children": [
            {
                "id": "2",
                "parent": "1"
            },
            {
                "id": "3",
                "parent": "1"
            }
        ],
        "url": "/file/url1",
        "date": "2022-09-10T13:49:43.245695Z",
        "parentId": "null",
        "size": 2
    }

А мне нужно, чтобы было напрямую type: FOLDER Вот модели:

class SystemItemType(models.Model):
    description = models.CharField(choices=[('FILE', 'FILE'), ('FOLDER', 'FOLDER')], max_length=10)

    def __str__(self):
        return self.description


class SystemItem(models.Model):
    id = models.CharField(primary_key=True, unique=True, max_length=255)
    url = models.CharField(null=True, max_length=255)
    date = models.DateTimeField(auto_now=True)
    parentId = models.CharField(null=True, max_length=255)
    type = models.ForeignKey("SystemItemType", on_delete=models.CASCADE, related_name="SysItem")
    size = models.IntegerField(null=True)


class Children(models.Model):
    parent = models.ForeignKey("SystemItem", on_delete=models.CASCADE, related_name="children")
    id = models.CharField(primary_key=True, unique=True, max_length=255)

Вот сериализаторы:

class ChildrenSerializer(serializers.ModelSerializer):
    class Meta:
        model = Children
        fields = "__all__"


class SystemItemTypeSerializer(serializers.ModelSerializer):
    class Meta:
        model = SystemItemType
        fields = ['description']


class SystemItemSerializer(serializers.ModelSerializer):
    type = SystemItemTypeSerializer(read_only=True)
    children = ChildrenSerializer(many=True)
    class Meta:
        model = SystemItem
        fields = "__all__"

Вообще у меня ещё поле children неправильно отражается, но сначала бы с type разобраться Если можете и с этим помочь, то буду благодарен

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