django manage.py Einstellungen Standard
Ich habe eine settings.py
- Datei und eine dev_settings.py
- Datei, die ich überschreiben einiger Werte für dev-Zwecke. Jedesmal, wenn ich das ./manage.py
Befehl muss ich angeben --settings=whatever.local_settings
. Dies wird sehr mühsam zu tun, jedes mal, wenn ich versuche, einen Weg zu finden, um Kraft manage.py laden meiner dev_settings.py Datei standardmäßig, so dass ich nicht geben Sie, die langen Streit jedes mal möchte ich, um einen Befehl auszuführen.
Ich habe versucht Einstellung DJANGO_SETTINGS_MODULE
, es scheint jedoch, dass manage.py überschreibt diese option.
Ist es möglich, dies zu verwirklichen, oder bin ich dazu verdammt, immer angeben, dass argument?
InformationsquelleAutor intargc | 2011-11-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
manage.py
setzt Pfad-Einstellungen für Sie, das ist, warum es zu ignorierenDJANGO_SETTINGS_MODULE
(es ist im Grunde nur ein Skript, das wickelt sich umdjango-admin.py
).Gibt es 2 einfache Möglichkeiten, um Ihr problem zu beheben:
set
DJANGO_SETTINGS_MODULE
und verwendendjango-admin.py
alle das ausführen von Befehlen anstelle vonmanage.py
. Das ist sogar besser, wenn Sie vitualenv.kopieren
manage.py
und nennen eslocal.py
(das ist der name in meinem Fall) und benennen Sie allesettings
erwähntdev_settings
.Beispiel:
Können Sie das ausführen aller Befehle vom
./local.py
jetzt.InformationsquelleAutor Ondrej Slinták
Die Art und Weise dies erfolgt in der Regel haben Sie
settings.py
mit allen Einstellungen, die üblich sind zwischen Umgebungen (Dinge wie INSTALLED_APPS, etc.). Dann haben Sie so etwas wiesettings_local.py
definiert wird, sodass die Einstellungen insbesondere für die Umwelt in Zusammenhang. Sie importieren dannsettings_local.py
imsettings.py
.settings.py
wird Hinzugefügt, um Ihren source-code-repository, abersettings_local.py
nicht. (Allerdings würden Sie normalerweise fügen Sie so etwas wiesettings_local.py.example
auf das repo.)Beim ersten bewegen Sie Ihre app über die Produktion, zum Beispiel, Sie nach unten ziehen, die code base von Ihrem repo. Anschließend kopieren Sie
settings_local.py.example
zusettings_local.py
und ggf. von der Umgebung ändert.Haben Sie dann getrennt
settings_local.py
- Dateien in jede Umgebung, und es funktioniert einfach.Gut, seine Beschwerde ist der Nachteil an diesem Ansatz. Ich bin nicht unbedingt einverstanden mit der Logik dieses Ansatzes, aber es ist vor allem semantische und kommt mit den Kosten der ständigen geben Sie die Einstellungen-Datei zu verwenden. Alle Dinge gleich sind, einfacher ist besser, so dass ich sagen, dass der traditionelle Ansatz der Import der lokalen Einstellungen am Ende ist Sie die überlegene.
Ich bin mir nicht sicher, ob es wirklich gleich. Als ich versuchte zu spielen, um mit Verlängerung (nicht überschreiben) von Variablen mit dieser Technik, es ist einfach weigerte zu arbeiten. Das war vor einiger Zeit tho. Ich benutze die zweite, da dann und es funktioniert gut für mich (Vereinfachung durch die Schaffung neuer manage.py wie beschrieben in meiner Antwort).
Seltsam genug, wir hatten es auf diese Weise und es hat Super geklappt. Allerdings hatten wir eine Trainingseinheit mit Jacob Kaplan-Moss, und er empfahl, dass auf diese Weise vermieden werden, für ein paar Gründe. Also haben wir alle beschlossen, beherzigen Sie seinen Rat und fahren die Strecke, die wir jetzt tun.
Nun, ich denke, ich kann nicht behaupten, mit dem Jacob ;), aber in typischer Weise die Django-Entwickler verhängt ein best-practice-und gar nicht so weit gehen und tatsächlich machen es leicht zu Folgen. Meiner Meinung nach, wenn es sein sollte, der Praxis zu Folgen, das core-team sollte gearbeitet haben, in einer Weise zu unterstützen, es aus der box, anstatt dass die Menschen etwas zu tun, wie ändern manage.py
</soapbox>
.InformationsquelleAutor Chris Pratt
Können Sie ein bash-alias durch das hinzufügen dieser Zeilen in Ihrer .bash_profile-Datei:
Dann, wenn Sie diesen Befehl ausführen:
settings_debug.py Datei wird verwendet für Einstellungen.
InformationsquelleAutor Murat Çorlu
Können Sie verwenden django-admin.py mit dieser Umgebungsvariablen. Befehle sind austauschbar, nur django-admin.py nicht das überschreiben der variable, die Sie versuchen zu verwenden.
InformationsquelleAutor favoretti
Wenn eine Einstellungen-Datei ist üblich, alle der installation, können Sie einfach importieren, z.B.
aber in der Regel settings_local geändert und optimiert, pro-installation und als meine Installations-Skript direkt kopieren von Dateien auf den Ziel-Seiten (ohne sich Gedanken, was ist lokal, was nicht), was bedeutet, settings_local kann überschrieben werden, um zu vermeiden, dass ich immer nur settings_local in der Eltern-Ordner der installation Ziel und manuell importieren Sie Sie in settings.py z.B.
InformationsquelleAutor Anurag Uniyal