Получается вложенный словарь в 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 разобраться Если можете и с этим помочь, то буду благодарен