72 votes

Comment créer un fichier de fixation

Je souhaite créer un fichier de fixation dans mon projet Django.

Comment faire ?

66voto

S.Lott Points 207588

Lire " Fournir des données initiales pour les modèles ".

  1. Charger des données dans une base de données gérée par Django. De simples scripts fonctionnent bien, ou utilisez l'interface d'administration par défaut.
  2. Utilisation manage.py dumpdata pour transférer les données dans un fichier JSON. Lire " django-admin.py et manage.py ".

40voto

miracle_mj Points 23

Pour vidanger les données :

python manage.py dumpdata app.model_name --indent 4 > fixtures/model_name.json

Pour charger les données :

python manage.py loaddata fixtures/model_name.json --app app.model_name

--indent X est optionnel.

20voto

F.C. Points 3283

Vous devez créer un répertoire dans votre application nommé fixtures et y placer vos fichiers de fixtures.

Vous pouvez les écrire en json ou en xml, une façon simple de les créer est de créer quelques objets dans l'interface d'administration et de lancer ensuite manage.py dumpdata. Cela videra les données des objets que vous avez créés dans des fichiers de fixation. Ensuite, vous pouvez simplement éditer ces fichiers pour les adapter à vos besoins.

https://docs.djangoproject.com/en/1.7/ref/django-admin/#dumpdata-app-label-app-label-app-label-model

Si vous voulez charger les fixtures, utilisez manage.py loaddata.

https://docs.djangoproject.com/en/1.7/ref/django-admin/#loaddata-fixture-fixture

Vous pouvez avoir des fixtures avec des données initiales qui seront automatiquement chargées lorsque vous lancez syncdb, il suffit de créer un fichier nommé initial_data et Django le reconnaîtra.

https://docs.djangoproject.com/en/1.7/howto/initial-data/#automatically-loading-initial-data-fixtures

Pour utiliser les fixtures à des fins de test, vous devez les déclarer dans votre classe de test

https://docs.djangoproject.com/en/1.7/topics/testing/tools/#fixture-loading

13voto

cevaris Points 1145

J'ai atterri ici en cherchant comment faire des fixations. J'ai trouvé que l'article suivant était le plus facile.

https://code.djangoproject.com/wiki/Fixtures

Ajouter le FIXTURE_DIRS le chemin d'accès à la page d'accueil de votre application settings.py .

import os
PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))
FIXTURE_DIRS = (
   os.path.join(PROJECT_DIR, 'fixtures'),
)

Déposez maintenant votre myapp dans un fichier JSON.

python manage.py dumpdata --format=json myapp > myapp/fixtures/initial_data.json

Voilà, il est temps de tester. Chute myapp tables...

./manage.py sqlclear myapp | ./manage.py dbshell

Maintenant, rechargez les fixtures...

./manage.py syncdb

4voto

Dr Manhattan Points 4796

Si vous voulez vidanger tout le site, vous n'avez pas besoin de spécifier un dossier de fixation dans les paramètres, vous pouvez créer un dossier de fixation dans votre projet et exécuter ceci

python manage.py dumpdata --format=json > /full-path-to-my-project/fixtures/initial_data.json

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X