2011-05-27 14 views

Respuesta

42

Lea TestCase.fixtures.

  1. Cargue algunos datos en una base de datos manejada por Django. Los scripts simples de Python funcionan bien, o usan la interfaz de administración predeterminada.

  2. Utilice manage.py dumpdata para volcar los datos en un archivo de dispositivo JSON. Lea "django-admin.py and manage.py".

+1

cuando se enlaza a documentos, es mejor vincularlo a la versión [dev] ("https://docs.djangoproject.com/en/dev/ref/django-admin/#dumpdata-appname-appname-appname-model")? – codervince

+3

El enlace que proporcionó ya no es válido, aquí hay un nuevo enlace: [TestCase.fixtures] (https://docs.djangoproject.com/en/1.9/howto/initial-data/) – Dan

14

Debe crear un directorio en su aplicación con el nombre de accesorios y poner sus archivos de accesorios allí.

Puede escribirlos en json o xml, una manera fácil de hacerlos es crear algunos objetos en la interfaz de administración y luego ejecutar manage.py dumpdata. Eso arrojaría los datos de los objetos creados a los archivos de dispositivos. Después de eso, simplemente podría editar esos archivos según sus necesidades.

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

Si desea cargar los aparatos que utilizan loaddata manage.py.

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

Usted puede tener los accesorios con los datos iniciales que se carga automáticamente cuando se ejecuta syncdb, basta con crear un archivo llamado initial_data y Django lo reconocería.

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

Para utilizar accesorios para propósitos de prueba debe declarar en tu clase de prueba

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

7

aterricé aquí buscando cómo hacer accesorios. Encontré el siguiente artículo para ser el más fácil.

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

añadir la ruta a su FIXTURE_DIRS aplicaciones de settings.py.

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

Ahora volcar su estado actual myapp en un archivo JSON.

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

Eso es, es hora de probar. Caída myapp mesas ...

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

Ahora volver a cargar los accesorios ahora ...

./manage.py syncdb 
+4

También vale la pena señalar que puede seleccione selectivamente modelos usando su ruta en minúscula. También puede imprimir bastante por tuberías a través de 'python -mjson.tool' -' python manage.py dumpdata myapp.mymodel | python -mjson.tool> mymodel.json'. – Rebs

+0

Aparece un error cuando ejecuto el comando 'dumpdata'. 'El método unbound contribute_to_class() se debe invocar con la instancia de TextField como primer argumento (en su lugar se obtuvo la instancia de ModelBase)'. ¿Por qué? – Hussain

+0

@Hussain ¿Es válido el modelo? ver https://code.djangoproject.com/wiki/NewbieMistakes#Symptom5 – cevaris

2

Actualmente estoy escribiendo un módulo de Django (django-generate_fixtures) para generar los accesorios inteligentes, siguiendo todos los modelos relacionados de un objeto principal

Vacia los datos como JSON en este momento, luego puede cargarlos de la misma manera que cualquier otro dispositivo.

2

Si desea volcar todo el sitio, no es necesario especificar un dir accesorios en la configuración, se puede hacer un dir accesorios en su proyecto y ejecutar este

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