dirs data django fixtures

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á.

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

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



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