Ich entwickle eine Django-Anwendung. Module von Bedeutung für mein Problem sind unten angegeben:django - zirkuläres Importproblem beim Ausführen eines Befehls
globals.py -> enthält Konstanten, die in der gesamten Anwendung verwendet werden. SITE_NAME
und SITE_DOMAIN
sind zwei davon und werden verwendet, um einige Zeichenfolgen zu füllen. Hier ist, wie ich sie definieren:
from django.contrib.sites.models import Site
...
SITE_DOMAIN = Site.objects.get_current().domain
SITE_NAME = Site.objects.get_current().name
models.py -> Modelle innerhalb dieses Moduls leben. einige Konstanten aus globals.py importiert
some_command.py -> ein Befehl, der auch einige Konstanten von Globals importiert.
bei Ausführung des Befehl importiert eine Konstante aus globals.py und läuft in ein kreisförmigen Import Problem: inside globals.py, get_current() von Seiten app genannt werden, und Seiten App wiederum importiert models.py, die Importe von globals.py auch hat.
EDIT:
Die Anwendung läuft einwandfrei, ohne diesen Kreis Import Problem zu begegnen. Importieren globals.py von Shell bringt keine Probleme. Sogar der Befehl kann von der Shell ohne Aufruf manage.py ausgeführt werden.
Warum funktioniert manage.py some_command aufgrund eines zirkulären Imports nicht?
Vielen Dank im Voraus.
Einige String-Konstanten in globals.py verwenden sie, wie diese imaginäre: WELCOME_STRING = 'Willkommen bei'% SITE_NAME – shanyu
Lol, Willkommen String-Konstante. Schreibst du auch einige deiner Ansichten in globals.py? http://www.c2.com/cgi/wiki?GlobalVariablesAreBad – drozzy
@drozzy "globals.py" ist nur ein Container für Zeichenfolgen, die übersetzt werden. Es ist nicht mehr "global" als, sagen wir, settings.py. Nicht durch seinen Namen vorwegnehmen;) – shanyu