Как конвертировать в полный JSON - PullRequest
0 голосов
/ 12 сентября 2018

Как конвертировать в формат JSON. Вместо идентификатора объекта вам необходимо получить полную информацию о нем. Из таких

[
  {
    "title": "scenario factory - sump",
    "scenario_pipeline": [
      {
        "pipeline": 11
      }
    ],
   "scenario_exist": [
      {
        "factory": 43
      },
      {
        "factory": 44
      }
    ]
  }
]

К такому

[
  {
    "title": "scenario factory - sump",
    "scenario_pipeline": [
      {
        "title": "factory - sump",
        "percent": 11,
        "start_point": [
          57.332892983304895,
          36.40013349999995
        ],
        "end_point": [
          51.829824506973154,
          43.43138349999996
        ],
        "point": []
      }
    ],
   "scenario_exist": [
      {
        "id": 43,
        "title": "factory",
        "choice": "Factory",
        "address": [
          57.332892983304895,
          36.40013349999995
        ]
      },
      {
        "id": 44,
        "title": "sump",
        "choice": "Sump",
        "address": [
          51.829824506973154,
          43.43138349999996
        ]
      }
    ]
  }
]

My models.py Базовая модель сценария, два оставшихся встроенных

class Scenario(models.Model):
    title = models.CharField(max_length=200)

class ScenarioExist(models.Model):
    scenario = models.ForeignKey('Scenario', related_name='scenario_exist', on_delete=models.CASCADE)
    factory = models.ForeignKey('factory.Factory', related_name='factory', on_delete=models.CASCADE)

class PipelineTwo(models.Model):
    scenario = models.ForeignKey('Scenario', related_name='scenario_pipeline', on_delete=models.CASCADE)
    pipeline = models.ForeignKey('pipeline.Pipeline', null = True, on_delete=models.CASCADE, related_name = 'point_two')

Если вы хотите показать модели, к которым обращаются поля, я покажу.

Мой serializes.py

class PipelineTwoSerializer(serializers.ModelSerializer):

    class Meta:
        model = PipelineTwo
        fields = ['pipeline']

class ScenarioExistSerializer(serializers.ModelSerializer):

    class Meta:
        model = ScenarioExist
        fields = ['factory']

class ScenarioSerializer(serializers.ModelSerializer):
    scenario_pipeline = PipelineTwoSerializer(many=True)
    scenario_exist = ScenarioExistSerializer(many=True)

    class Meta:
        model = Scenario
        fields = ['title', 'scenario_pipeline', 'scenario_exist']

1 Ответ

0 голосов
/ 12 сентября 2018

Вы используете вложенные сериализаторы в вашем ScenarioSerializer; вам нужно сделать то же самое в вашем PipelineTwoSerializer, чтобы получить значения из pipeline.Pipeline и в ScenarioExistSerializer для factory.Factory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...