Проблема с парсингом Json'a, drf

Имеется json вида -

   {
 "main_info":{
    "genres": [
      "сд",
      "бв",
      "аб"
    ],
    "countries_created": [
      "Россия",
      "Англия",
      "Австрия"
    ],
    "license_types": [
      "Тип1",
      "Тип2",
      "Тип3"
    ],
    "rights_holder": "Кто-то, ООО",
    "group": "Группа1",
    "product_name": "Продукт",
    "purchaser": "ООО \"Другой Кто-то\"",
    "content_type": "Рос. продукт",
    "year_created": "2019",
    "age_restriction": "6",
    "episode_duration": "1",
    "total_duration": "1",
    "contract_currency": "Дол.",
    "amount_episodes": "5",
    "seasons_number": "1",
    "partner_info": {               ---- сущность связанная с MainInfo по Foreign Key
       "allowed_platforms": [
            "Разрешенная платформа"
           ],
      "restricted_platforms": [
              "Запрещенная платформа"
          ]
       }
    }
}

2 модели в django:

class MainInfo(models.Model):
    # id = models.IntegerField(primary_key=True)
    rights_holder = models.CharField(max_length=50)
    group = models.CharField(max_length=8)
    product_name = models.CharField(max_length=250)
    purchaser = models.CharField(max_length=100)
    content_type = models.CharField(max_length=22)
    genres = models.JSONField(max_length=255)
    countries_created = models.JSONField(max_length=255)
    year_created = models.IntegerField()
    age_restriction = models.CharField(max_length=3)
    episodes_quantity = models.IntegerField(blank=True, null=True)
    season_number = models.IntegerField(blank=True, null=True)
    episode_duration = models.CharField(max_length=6)
    total_duration = models.CharField(max_length=12)
    contract_currency = models.CharField(max_length=4)
    partner_info = models.ForeignKey('PartnerInfo', on_delete=models.CASCADE, related_name='main_info')

    class Meta:
        app_label = 'api'


class PartnerInfo(models.Model):
    allowed_platforms = models.JSONField()
    restricted_platforms = models.JSONField()

Как правильно сериализовать этот json и сложить его в таблицы, чтобы в maininfo был partner_info_id ссылался на таблицу partnerinfo.id

2 сериализатора, которые я кручу уже второй день:

class PartnerInfoSerializer(serializers.ModelSerializer):
    class Meta:
        model = main_models.PartnerInfo
        fields = ('allowed_platforms', 'restricted_platforms')

    def create(self, validated_data):
        return main_models.PartnerInfo.objects.create(**validated_data)


class MainInfoSerializer(serializers.ModelSerializer):
    partner_info = PartnerInfoSerializer()

    class Meta:
        model = main_models.MainInfo
        fields = ('genres', 'countries_created', 'rights_holder', 'group', 'product_name',
                  'purchaser', 'content_type', 'year_created', 'age_restriction', 'episode_duration',
                  'total_duration', 'contract_currency', 'episodes_quantity', 'season_number', 'partner_info')

    def create(self, validated_data):
        validated_data.pop('partner_info')
        main_info_data = main_models.MainInfo.objects.create(**validated_data)
        return main_info_data

Проблема в том, как я вижу, что должна создаться запись в partner info и её id передаться в MainInfo. Не знаю, как это сделать.

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