Je veux créer un fichier de fixtures dans mon projet Django.
Comment puis-je faire ceci?
Lisez les correctifs de TestCase .
Chargez des données dans une firebase database gérée par Django. Les scripts Python simples fonctionnent parfaitement, ou utilisez l’interface d’administration par défaut.
Utilisez manage.py dumpdata
pour vider les données dans un fichier JSON. Lisez ” django-admin.py et manage.py “.
Vous devez créer un répertoire dans votre app nommé fixtures et y placer vos fichiers de fixtures.
Vous pouvez les écrire dans json ou xml, un moyen simple de les créer est de créer des objects dans l’interface d’administration, puis d’exécuter manage.py dumpdata. Cela viderait les données des objects que vous avez créés dans les fichiers de assembly. Après cela, vous pouvez simplement modifier ces fichiers en fonction de 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 appareils, 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ées 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
J’ai atterri ici en regardant comment faire des assemblys. J’ai trouvé l’article suivant le plus facile.
https://code.djangoproject.com/wiki/Fixtures
Ajoutez le chemin d’access FIXTURE_DIRS
aux FIXTURE_DIRS
de votre application.py.
import os PROJECT_DIR = os.path.abspath(os.path.dirname(__file__)) FIXTURE_DIRS = ( os.path.join(PROJECT_DIR, 'fixtures'), )
Maintenant, videz votre état actuel de mes applications dans un fichier JSON.
python manage.py dumpdata --format=json myapp > myapp/fixtures/initial_data.json
C’est le moment de tester. Déposez les tables myapp
…
./manage.py sqlclear myapp | ./manage.py dbshell
Maintenant, rechargez les appareils maintenant …
./manage.py syncdb
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’écris actuellement un module django ( django-generate_fixtures ) pour générer des fixtures intelligentes, en suivant tous les modèles associés d’un object parent.
Il vide les données en JSON dès maintenant, puis vous pouvez les charger de la même manière que tous les autres appareils.
Si vous voulez vider l’intégralité du site, vous n’avez pas besoin de spécifier un répertoire de fixtures dans les parameters, vous pouvez créer un répertoire de fixtures dans votre projet et l’exécuter.
python manage.py dumpdata --format=json > /full-path-to-my-project/fixtures/initial_data.json