Après avoir galéré sur les fixtures django sur les champs ManyToMany, j’ai pu mettre en ligne la mise à jour de la base de données de Resaski.

Voici un modèle simplifié :

class Language(models.Model):
code = models.SlugField(primary_key=True, max_length=10)
name = models.CharField(max_length=200)

class School(models.Model):
slug = models.SlugField(primary_key=True, max_length=200)
languages = models.ManyToManyField(Language)

et un ensemble de fixtures json associé :

[
{“model”: “myapp.language”,
“pk”:“fr”,
“fields”:{“name”: “Français”,“code”: “fr”}
},
{“model”: “myapp.language”,
“pk”:“en”,
“fields”:{“name”: “Anglais”,“code”: “en”}
},
{“model”: “myapp.School”,
“pk”:“ecole-1”,
“fields”:{“slug”:“ecole-1”, “languages”:[fr]}
},
{“model”: “myapp.School”,
“pk”:“ecole-2”,
“fields”:{“slug”:“ecole-2”, “languages”:[“fr”,“en”]}
}
]

L’ensemble des stations et des écoles de ski à été mis à jour, notamment : Ecole de ski Tourmalet Risoul Le Grand Bornand Morzine Saint Gervais La Rosière Les Carroz d’Arraches Valloire Contamines Montjoie Les Gets Vars - Crevoux Valmorel Serre Chevalier Samoëns Châtel Megève Vos cours de snowboard à La Clusaz Les Saisies Les Menuires Val d’Isère Alpe d’Huez Vos cours de ski sur Avoriaz Les Deux Alpes Meribel La Plagne Ecole de ski Courchevel Chamonix Les Arcs Val Thorens Les écoles de ski à Tignes