2013-07-16 43 views
2

我嘗試通過將應用程序下 「應用程序」 文件夾中,像這樣來構造我的項目:Django - 如何正確連接網址? URL(),包括(),導入錯誤

├── manage.py 
├── mysite 
│   ├── apps 
│   │   ├── __init__.py 
│   │   ├── myapp1 
│   │   │   ├── __init__.py 
│   │   │   ├── models.py 
│   │   │   ├── urls.py 
│   │   │   └── views.py 
│   │   └── myapp2 
│   │    ├── __init__.py 
│   │    ├── models.py 
│   │    ├── urls.py 
│   │    └── views.py 
│   ├── __init__.py 
│   ├── settings.py 
│   ├── urls.py 
│   ├── wsgi.py 

而且在mysite的/ urls.py:

from django.conf.urls import patterns, include, url 

from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    url(r'^myapp1/', include('mysite.apps.myapp1.urls')), 
    url(r'^mysite/apps/myapp2/', include('myapp2.urls')), 
    url(r'^admin/', include(admin.site.urls)), 
) 

也有一些是錯誤的:

url(r'^myapp1/', include('mysite.apps.myapp1.urls')), 
    url(r'^mysite/apps/myapp2/', include('myapp2.urls')), 

我無法連線要麼myapp1或myapp2正確,Django的給我「導入錯誤......沒有模塊名爲myapp1 ......」任何幫助嗎?

回答

0

你缺少的一個水平相對路徑:

url(r'^mysite/apps/myapp2/', include('apps.myapp2.urls')), 

myapp1看起來應該對我有效。


的注意事項,比較你是如何想包括myapp1 VS myapp2,它看起來像你可能已經稍有誤解結構。該URL與代碼佈局無關。這是完全有效的:

url(r'^zimzam/allthethings/', include('apps.myapp2.urls')), 
+0

謝謝你的提示,Izkata。但是,我試過你的解決方案,編輯sdnsite/urls.py,它仍然給出ImportError。 我的目錄結構: http://pastebin.com/X7NnqvNv 我sdnsite/urls.py: http://pastebin.com/nBN58BMq Django的錯誤: http://pastebin.com/tPTVqgua 我知道origin/urls.py沒有問題,因爲如果我將應用程序置於manage.py級別,它將運行正常。 –

+0

@HowardLee其實,問題可能是。請仔細閱讀文檔(https://docs.djangoproject.com/en/1.4/topics/http/urls/#including-other-urlconfs):每當他們使用include()時,它都在簡單的元組,_not_在調用'url()'的時候。那樣有用嗎? – Izkata

+0

問題解決了!是的,myapp1正常。這實際上是問題myapp1.urls.py。我有「從myapp1導入意見」,而不是「導入意見」。我不應該「從myapp1導入視圖」,因爲它會在「myapp1」中查找另一個「myapp1」文件夾。我打印出python的加載路徑,並能夠追蹤到問題。 –

0

也許是這樣的:

include('mysite.apps.myapp1.urls')), 

更新

你可以試試:

添加文件__init__.pymysite DIR

+0

這是我已經試過: 如果myapp1文件夾是在同一級別manage.py,然後 URL(R '^ myapp1 /',包括( 'myapp1.urls' )) 會工作 –

+0

@HowardLee我更新了我的答案,你可以試試看,希望它能幫助你 – liuzhijun

+0

問題解決了,我貼了。請參閱Izkata的評論。 –