Django: Name kann nicht importiert werden

8

Ich habe gerade ein sehr nerviges Problem bei der Bereitstellung neuer Updates auf meiner Website festgestellt. Ich habe zwei getrennte Websites, von denen eine eine Entwicklungsversion ist. Jetzt, wenn ich meine Änderungen in der Produktion anwenden möchte, wird es wegen der Fehlermeldung nicht funktionieren:

  

Datei   "/usr/lib/python2.6/dist-packages/django/core/handlers/base.py",   Zeile 99, in get_response
  request.path_info)

     

Datei   "/usr/lib/python2.6/dist-packages/django/core/urlresolvers.py",   Zeile 249, für Muster in   self.url_patterns:

     

Datei   "/usr/lib/python2.6/dist-packages/django/core/urlresolvers.py",   Zeile 278, in _get_url_patterns
  Muster =   getattr (self.urlconf_modul,   "urlpatterns", self.urlconf_module)

     

Datei   "/usr/lib/python2.6/dist-packages/django/core/urlresolvers.py",   Zeile 273, in _get_urlconf_module
  self._urlconf_module =   import_module (self.urlconf_name)

     

Datei   "/usr/lib/python2.6/dist-packages/django/utils/importlib.py",   Zeile 35, in Import_Modul
importieren (Name)

     

Datei   "/srv/websites/spelutveckla_se/urls.py",   Linie 21, in
  ('Konto / Login / $',   LoginView.as_view ()),

     

NameError: Name 'LoginView' ist nicht   definiert

Es spielt keine Rolle, ob ich die App, die Ansicht, die Klasse oder das Modul entferne, weil es sich stattdessen über ein anderes Modul beschweren wird. LoginView wird in einer Importanweisung definiert. Die Dateien sind nur eine neue Kopie der Entwicklungsdateien (mit Ausnahme von settings.py), die ohne Probleme auf einer anderen Sub-Domain ausgeführt werden. Ich habe die settings.py mehrmals überprüft und sichergestellt, dass die richtigen Einstellungen eingestellt sind (unterscheidet sich durch ein paar Verzeichnispfade). Ich habe auch überprüft, dass der Benutzer apache2 www-data die Berechtigung hat, auf die Dateien zuzugreifen. Ich habe auch Apache ein paar Mal neu gestartet und kopiert die Dateien immer wieder, aber nichts funktioniert.

Ich bin verzweifelt und habe keine Ahnung, was das Problem sein könnte ...?

So sieht mein urls.py oben aus:

%Vor%     
mrmclovin 08.03.2011, 21:39
quelle

1 Antwort

22

Sie hatten wahrscheinlich einen zirkulären Import in dem Modul LoginView definiert, dh wenn Sie das Modul views importiert haben, das LoginView definiert hat, hat eine Anweisung irgendwie wiederum ein anderes Modul importiert, auf das noch gewartet wurde werde vollständig interpretiert.

Hier ist ein Beispiel, um Ihnen eine bessere Idee zu geben:

%Vor%

Sobald myapp.views importiert wird und der SomeCreateView Typ dem Speicher zugewiesen wird, wird reverse('myapp:some-url') ausgeführt und Ihr myapp.urls wird schließlich von Django importiert, nur das wird nicht möglich sein, seit myapp.urls wartet unbegrenzt auf myapp.views , um importiert zu werden.

    
Filip Dupanović 08.03.2011, 22:16
quelle

Tags und Links