Задать вопрос
@stayHARD

Как добавить дополнительный key в json?

Здравствуйте.
Как я могу немного изменить структуру json, что мне отдает сериализатор?
Собственно вот он:
class SectionSerializer(serializers.ModelSerializer):
	images = ImageSerializer(many = True, read_only = True)
	images2 = Image2Serializer(many = True, read_only = True)
	class Meta:
		model = Sections
		fields = ('id', 'name', 'audio1', 'audio2', 'images', 'images2')


Мне нужно что-бы поле image2 было вложенным.
В итоге получить хочу:
[
    {
        "id": 1,
        "name": "Lake1",
        "audio1": "qwe",
        "audio2": "qwe",
        "images": [
            {
                "id": 1,
                "file_name": "/images/66acc105-1c06-45aa-a3b8-5_S3USvg3.png"
                 "images2": [
                     {
                          "id": 1,
                          "file_name": "/images/66acc105-1c06-45aa-a3b8-5_S3USvg3.png"
                     },
                    {
                          "id": 2,
                          "file_name": "/images/66acc105-1c06-45aa-a3b8-5_S3USvg3.png"
                   }
        ]
    }
]
  • Вопрос задан
  • 175 просмотров
Подписаться 2 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 2
vladqwerty
@vladqwerty
Web developer
Upd. Если получаете объект в результате со структурой :
var obj = {
  "id": 1,
  "name": "Lake1",
  "audio1": "qwe",
  "audio2": "qwe",
  "images": [
    {
      "id": 1,
      "file_name": "/images/66acc105-1c06-45aa-a3b8-5_S3USvg3.png"
    }],
  "images2": 
    [
        {
          "id": 1,
          "file_name": "/images/66acc105-1c06-45aa-a3b8-5_S3USvg3.png"
        },
        {
          "id": 2,
          "file_name": "/images/66acc105-1c06-45aa-a3b8-5_S3USvg3.png"
        }
   ]
}

то выполнив
obj.images.images2 = obj.images2;
delete obj.images2;

получите объект со структурой
{
  "id": 1,
  "name": "Lake1",
  "audio1": "qwe",
  "audio2": "qwe",
  "images": [
    {
      "id": 1,
      "file_name": "/images/66acc105-1c06-45aa-a3b8-5_S3USvg3.png",
      "images2": 
    [
        {
          "id": 1,
          "file_name": "/images/66acc105-1c06-45aa-a3b8-5_S3USvg3.png"
        },
        {
          "id": 2,
          "file_name": "/images/66acc105-1c06-45aa-a3b8-5_S3USvg3.png"
        }
   ]
    }]
}
Ответ написан
@FireGM
Читаем про кастомные поля
www.django-rest-framework.org/api-guide/fields/#cu...
Смотрим
https://github.com/heywbj/django-rest-framework-re...
Смотрим более подробно примеры
https://github.com/heywbj/django-rest-framework-re...
А именно на реализацию
NodeSerializer
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы