为什么__init.py__没有导入我的观点?

时间:2016-03-19 20:19:44

标签: django

我的views.py变得臃肿,我决定通过创建一个包含所有小.py文件的./views目录将其剪切成更小的模块。这是我在启动测试网络服务器时得到的结果:

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

我的./views目录包含__init__.py,其中有几行:

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

./views/my_view.py当然看起来像:

def my_view(request):
    #etc...
我显然忽视了一些事情,但我无法思考。你能看到我犯的错误吗?

1 个答案:

答案 0 :(得分:1)

我猜视图不在您的PYTHON_PATH中。哪个是对的。但是这意味着你应该使用相对python导入:

from .my_view import my_view  # note the leading dot

或者从项目根目录(应该在PYTHON_PATH中)进行绝对导入:

from myapp.views.my_view import my_view