2016-03-19 3 views
1

Mein views.py wurde aufgebläht, und ich beschloss, es in kleinere Module zu zerlegen, indem ich ein ./views Verzeichnis mit all den kleinen .py-Dateien erstellte. Hier ist, was ich bekomme, wenn ich den Test Webserver starten:Warum importiert __init.py__ meine Ansichten nicht?

File "/path/to/the/app/views/__init__.py", line 1, in <module> 
    from my_view import my_view 
ImportError: No module named 'my_view' 

Mein ./views Verzeichnis enthält __init__.py, die mehrere Zeilen ist:

from my_view import my_view 
from my_other_view import my_other_view 
#etc... 

./views/my_view.py natürlich wie folgt aussieht:

def my_view(request): 
    #etc... 

Ich habe offensichtlich etwas übersehen, aber ich kann nicht was denken. Kannst du den Fehler sehen, den ich gemacht habe?

Antwort

1

Ich denke, Ansichten sind nicht in Ihrem PYTHON_PATH. Was ist richtig? Allerdings bedeutet dies, Sie relative Python Importe verwenden sollte:

from .my_view import my_view # note the leading dot 

Oder absolute Import aus dem Projekt Wurzel (die in Ihrem PYTHON_PATH sein sollte):

from myapp.views.my_view import my_view 
+0

> Merci mon ami! – Escher

Verwandte Themen