Сохранение списка в модели django

Привет ребята я работаю с python, django и django rest framework я хочу сабмитить информацию которая у меня есть в словаре в модель но я не знаю как это сделать я буду очень благодарен если вы объясните мне как я могу это сделать

Это список

[{'evolution': 'charizard',
  'height': 11,
  'id_pokemon': '5',
  'name': 'charmeleon',
  'stats': [[80, 'speed'],
            [65, 'special-defense'],
            [80, 'special-attack'],
            [58, 'defense'],
            [64, 'attack'],
            [58, 'hp']],
  'weight': 190},
 {'evolution': 'charmeleon',
  'height': 6,
  'id_pokemon': '4',
  'name': 'charmander',
  'stats': [[65, 'speed'],
            [50, 'special-defense'],
            [60, 'special-attack'],
            [43, 'defense'],
            [52, 'attack'],
            [39, 'hp']],
  'weight': 85},
 {'evolution': 'None',
  'height': 17,
  'id_pokemon': '6',
  'name': 'charizard',
  'stats': [[100, 'speed'],
            [85, 'special-defense'],
            [109, 'special-attack'],
            [78, 'defense'],
            [84, 'attack'],
            [78, 'hp']],
  'weight': 905}]

#_____________________________________
#And i want to save it on this model


class Pokemon(models.Model):
    """Database model for pokemon information"""
    id_pokemon = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=255)
    weight = models.IntegerField()
    height = models.IntegerField()
    special_defense = models.IntegerField()
    special_attack = models.IntegerField()
    defense = models.IntegerField()
    attack = models.IntegerField()
    hp = models.IntegerField()
    speed = models.IntegerField()
    evolution = models.IntegerField()

Вы можете настроить свои данные как показано ниже и использовать вложенный сериализатор с двумя моделями Pokemon и Stats с отношением один к одному.

[
    {
        'evolution': 'charizard',
        'height': 11,
        'id_pokemon': '5',
        'name': 'charmeleon',
        'stats': {
            'speed': 80,
            'special-defense': 65,
            'special-attack': 80,
            'defense': 58,
            'attack': 64,
            'hp': 58
         },
         'weight': 190
     }
]
Вернуться на верх