Je veux créer un fichier de fixture dans mon projet Django.
Comment puis-je faire ceci?
Lisez " Fourniture des données initiales pour les modèles ".
manage.py dumpdata
pour vider les données dans un fichier d'appareil JSON. Lisez " Django-admin.py et manage.py ".Vous devez créer un répertoire dans votre application nommé appareils et y placer vos fichiers d'appareils.
Vous pouvez les écrire en json ou xml, une façon simple de les créer est de créer des objets dans l'interface d'administration puis d'exécuter manage.py dumpdata. Cela viderait les données des objets que vous avez créés dans des fichiers de fixture. Après cela, vous pouvez simplement modifier 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 souhaitez charger les appareils que vous utilisez manage.py loaddata.
https://docs.djangoproject.com/en/1.7/ref/Django-admin/#loaddata-fixture-fixture
Vous pouvez avoir des appareils avec des données initiales qui seraient automatiquement chargés lorsque vous exécutez syncdb, créez simplement un fichier nommé initial_data et Django le reconnaîtrait.
Pour utiliser des appareils à 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
python manage.py dumpdata app.model_name --indent 4 > fixtures/file_name.json
python manage.py loaddata fixtures/model_name.json --app app.model_name
--indent X est facultatif.
J'ai atterri ici en cherchant comment faire des appareils. J'ai trouvé que l'article suivant était le plus simple.
https://code.djangoproject.com/wiki/Fixtures
Ajouter le FIXTURE_DIRS
chemin d'accès à vos applications settings.py
.
import os
PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))
FIXTURE_DIRS = (
os.path.join(PROJECT_DIR, 'fixtures'),
)
Vider maintenant votre état myapp
actuel dans un fichier JSON.
python manage.py dumpdata --format=json myapp > myapp/fixtures/initial_data.json
C'est tout, il est temps de tester. Supprimer les tables myapp
...
./manage.py sqlclear myapp | ./manage.py dbshell
Maintenant, rechargez les appareils maintenant ...
./manage.py syncdb
Si vous voulez vider l'intégralité du site, vous n'avez pas besoin de spécifier un répertoire d'appareils dans les paramètres, vous pouvez créer un répertoire d'appareils dans votre projet et l'exécuter.
python manage.py dumpdata --format=json > /full-path-to-my-project/fixtures/initial_data.json
J'écris actuellement un module Django ( Django-generate_fixtures ) pour générer des appareils intelligents, en suivant tous les modèles associés d'un objet parent.
Il sauvegarde les données au format JSON en ce moment, puis vous pouvez les charger de la même manière que tous les autres appareils.