django - data - Cómo crear un archivo fixture
fixture dirs django (6)
Quiero crear un archivo fixture en mi proyecto Django.
¿Cómo puedo hacer esto?
Para volcar datos:
python manage.py dumpdata app.model_name --indent 4 > fixtures/file_name.json
Para cargar datos:
python manage.py loaddata fixtures/model_name.json --app app.model_name
--indent X es opcional.
Actualmente estoy escribiendo un módulo django ( django-generate_fixtures ) para generar aparatos inteligentes, siguiendo todos los modelos relacionados de un objeto principal.
Vuelca los datos como JSON en este momento, luego puedes cargarlos de la misma forma que cualquier otro dispositivo.
Aterricé aquí buscando cómo hacer los accesorios. Encontré el siguiente artículo para ser el más fácil.
https://code.djangoproject.com/wiki/Fixtures
Agregue la ruta FIXTURE_DIRS
a FIXTURE_DIRS
de sus aplicaciones.
import os
PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))
FIXTURE_DIRS = (
os.path.join(PROJECT_DIR, ''fixtures''),
)
Ahora descargue su estado actual de myapp
en un archivo JSON.
python manage.py dumpdata --format=json myapp > myapp/fixtures/initial_data.json
Eso es, hora de probar. Drop myapp
tables ...
./manage.py sqlclear myapp | ./manage.py dbshell
Ahora vuelve a cargar los accesorios ahora ...
./manage.py syncdb
Debe crear un directorio en su aplicación llamada fixtures y colocar allí sus archivos de fixtures.
Puede escribirlos en json o xml, una forma fácil de hacerlos es crear algunos objetos en la interfaz de administración y luego ejecutar manage.py dumpdata. Eso volcaría los datos de los objetos que creaste en archivos de aparatos. Después de eso, simplemente puede editar esos archivos para adaptarlos a sus necesidades.
https://docs.djangoproject.com/en/1.7/ref/django-admin/#dumpdata-app-label-app-label-app-label-model
Si desea cargar los dispositivos, use manage.py loaddata.
https://docs.djangoproject.com/en/1.7/ref/django-admin/#loaddata-fixture-fixture
Puede tener dispositivos con datos iniciales que se cargarían automáticamente cuando ejecute syncdb, simplemente cree un archivo llamado initial_data y Django lo reconocerá.
Para usar los accesorios con fines de prueba, debe declararlos en su clase de prueba
https://docs.djangoproject.com/en/1.7/topics/testing/tools/#fixture-loading
Lea " Proporcionar datos iniciales para los modelos ".
- Cargar algunos datos en una base de datos gestionada por Django. Los scripts de Python simples funcionan bien, o usan la interfaz de administración predeterminada.
- Utilice
manage.py dumpdata
para volcar los datos en un archivo de arreglo JSON. Lea " django-admin.py y manage.py ".
Si desea volcar todo el sitio, no necesita especificar un directorio de dispositivos en la configuración, puede hacer un directorio de dispositivos en su proyecto y ejecutar este
python manage.py dumpdata --format=json > /full-path-to-my-project/fixtures/initial_data.json