2010-07-10 20 views
16

Antecedentes:¿Cuándo debería usar django-admin.py verus manage.py?

Cuando ejecuto el django-admin.py loaddata example.json obtengo este error. "ImportError: no se pueden importar configuraciones porque la variable de entorno DJANGO_SETTINGS_MODULE no está definida". Entiendo el problema Necesita el DJANGO_SETTINGS_MODULE para poder acceder a la base de datos para hacer esta importación. He tenido este problema antes y he logrado dar un paso lateral hasta ahora.

Al leer los documentos, descubrí que el manage.py es un contenedor para django-admin.py; pone el proyecto en el sys.path y establece el entorno DJANGO_SETTINGS_MODULE. ¡Woot! Whoa! Sé cómo solucionar mi problema.

Soo ... ¿Por qué utilizar los ejemplos de código Django documentation django-admin.py en lugar de manage.py al demostrar subcomandos como loaddata y dumpdata?

Respuesta

18

Si la variable de entorno DJANGO_SETTINGS_MODULE está configurada, puede usar django-admin.py desde cualquier directorio de trabajo, mientras que debe estar en el directorio del proyecto para usar ./manage.py (o tenerlo en su ruta).

Uso virtualenv, y se han establecido por DJANGO_SETTINGS_MODULEbin/activate, y entonces usted puede utilizar django-admin.py

7

Why do the Django documentation code examples using django-admin.py instead of manage.py when demonstrating subcommands such as loaddata and dumpdata?

Bueno, porque estos guiones son los mismos en principio, con las diferencias, que ya ha mencionado. Los documentos de Django también mencionan

django-admin.py <subcommand> [options] 
manage.py <subcommand> [options] 

side by side. Usualmente usa django-admin.py para comenzar un nuevo proyecto o aplicación y manage.py para hacer el resto.

+1

yo creo que esto hace que la documentación más confuso para los usuarios menos experimentados y tengo unos 9 meses trabajando con Django. ¡Gracias por tu ayuda! – citadelgrad

Cuestiones relacionadas