2016-05-15 13 views
0

Ich habe mit Django 1.7 gearbeitet und kürzlich ein neues Projekt mit Django 1.9 gestartet. Der Hauptunterschied zum Starten einer neuen App bestand darin, dass die neue App mit der Datei apps.py erstellt wurde. Ich las auf django docs, die jetzt müssen SieDjango 1.9 kann keine neue App finden

INSTALLED_APPS = [ 
    'newapp.apps.NewAppConfig', 
    ... 
] 

zu verwenden (alt war gerade 'newapp')

In meinem neuen Projekt, das ich meine apps alle in einem neuen Verzeichnis ‚myapps‘ genannt haben. Aber wenn ich 'myapps.newapp.apps.NewAppConfig' als django verwenden gibt Fehler ImportError: No module named newapp Aber wenn ich die alte Art und Weise verwenden, dh

INSTALLED_APPS = [ 
    'myapps.newapp', 
    ... 
] 

als es funktioniert perfekt ohne Fehler aber configs in apps.py Datei nicht angewendet werden kann (i don‘ t wissen, wie es funktioniert).

Also, was ist der richtige Weg, um newapp in INSTALLED_APPS Einstellungen für django 1.9 zu setzen, wenn Sie alle Ihre neuen Anwendungen in einem anderen Verzeichnis wie "myapps" mit apps.py Konfigurationsdatei auch funktioniert?

+0

Sie nicht "müssen" sie verwenden. Die alte Methode "myapps.newapp" ist ebenfalls gültig. Verwenden Sie nur die längere Version, wenn Sie Zeug in 'apps.py' ausführen müssen – C14L

+0

@ C14L Ja, ich verstehe, dass Sie nicht müssen, aber das ist meine Frage, was, wenn ich apps.py in Zukunft verwenden muss und ich einfach Diese Funktion kann aufgrund meiner Verzeichnisstruktur nicht verwendet werden. –

+0

Enthält Ihr 'newapp' -Verzeichnis' __init __. Py'? –

Antwort

1

Wenn Ihr Anwendungsverzeichnis im myapps Verzeichnis ist, dann prüfen Sie folgendes:

  1. Ihr myapps Verzeichnis sollte ein __init__.py

  2. myapps In dem Pfad, wenn Sie die App in INSTALLED_APPS enthalten , dh 'myapps.newapp.apps.NewAppConfig',

  3. Include myapps in der App conf ig des name Attribut:

    class NewAppConfig(AppConfig): 
        name = 'myapps.newapp' 
    
+0

Danke Mann. Mir fehlte der dritte Punkt ... Ich hatte name = 'newapp' in apps.py und das verursachte all das Problem. –

0

Wenn sich Ihre App im Verzeichnis "myapps" befindet, müssen Sie sie noch in den Pfad einschließen: "myapps.newapp.apps.NewAppConfig".

+0

Wie ich in der Frage mit "myapps.newapp.apps.NewAppConfig" angibt, gibt ImportError: Kein Modul namens newapp –