2017-02-20 16 views
1

我有一個項目和一個應用程序。我正在嘗試使用項目中的urls.py來激活應用程序中的視圖。Django:從另一個應用導入視圖

錯誤消息:進口homepage.index ModuleNotFoundError:無模塊名爲 'homepage.index'

在項目urls.py我有這樣的import語句:

項目/ urls.py

from homepage.views import index 

然後,在該項目的urls.py,所述URL模式[]數組包括該 參照應用程序的視圖:

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^$', homepage.views.index, name='index'), 
] 

主頁/ views.py

def index(request): 
    return HttpResponse("My Homepage") 

哪裏可能是錯誤?

回答

2

您輸入不正確。更改

url(r'^$', homepage.views.index, name='index'), 

url(r'^$', index, name='index'), 
0

的Django是用Python編寫的Web框架,也沒有神奇的involved.You被指定完整路徑視圖urls.py

# here the view is available as index 
from homepage.views import index 
# so reference the view as index 
url(r'^$', index, name='index'), 

如果你需要引用將全名空間,

# here the view can be imported as you intented 
import homepage 
url(r'^$', homepage.views.index, name='index'), 

事情要注意
ModuleNotFound是當模塊refered不可 提出,在這種情況下python將嘗試使用homepage模塊,但它不提供在目前情況下。
ImportError如果在已導入的模塊中或在使用from module import x時引用的屬性或模塊不可用,則會引發此問題。

>>> from os import wow 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: cannot import name 'wow' 
相關問題