2010-07-10 18 views
16

Sfondo:Quando si dovrebbe usare django-admin.py verus manage.py?

Quando eseguo il django-admin.py loaddata example.json, ho ricevuto questo errore. "ImportError: le impostazioni non possono essere importate, perché la variabile di ambiente DJANGO_SETTINGS_MODULE non è definita." Capisco il problema. Ha bisogno di DJANGO_SETTINGS_MODULE per poter accedere al database per eseguire questa importazione. Ho avuto questo problema prima e sono riuscito a fare un passo avanti.

Nella lettura dei documenti, ho scoperto che lo manage.py è un wrapper per django-admin.py; mette il progetto su sys.path e imposta l'ambiente DJANGO_SETTINGS_MODULE. Woot! Whoa! So come risolvere il mio problema.

Soo ... Perché gli esempi di codice Django documentation utilizzare django-admin.py invece di manage.py quando dimostrando subcommands quali loaddata e dumpdata?

risposta

18

Se la variabile di ambiente DJANGO_SETTINGS_MODULE è impostata, è possibile utilizzare django-admin.py da qualsiasi directory di lavoro, mentre è necessario essere nella directory del progetto per utilizzare ./manage.py (o averlo nel percorso).

Usa virtualenv, e hanno DJANGO_SETTINGS_MODULE fissato dal bin/activate, e quindi è possibile utilizzare 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?

Bene, perché questi script sono gli stessi in principio, con le differenze, hai già menzionato. I documenti di Django menzionano anche

fianco a fianco. Di solito si utilizza django-admin.py per avviare un nuovo progetto o applicazione e manage.py per fare il resto.

+1

Io credo che questo rende la documentazione più fonte di confusione per gli utenti meno esperti e io ho circa 9 mesi di lavoro con Django. Grazie per l'aiuto! – citadelgrad

Problemi correlati