2012-10-02 64 views
0

我是新來Django 1.4並嘗試我的第一個項目。這是確定以創建應用程序:如何解決ViewDoesNotExist

./manage.py startapp APP_NAME 

和Django的在urls.py如下認識:

(r'^home/$', 'APP_NAME.views.home'), 

但是當我只有在項目的根目錄下,並改變創建APP_NAME.py文件urls.py文件如下:

(r'^home/$', 'APP_NAME.home'), 

調試頁告訴我ViewDoesNotExist。即使我改變urls.py文件(從...進口和無單引號):

from APP_NAME import home 
(r'^home/$', home), 

它也不起作用。

如何解決?它錯綜複雜地爲每個視圖文件創建APP。

+0

最好遵循教程中規定的django約定。不這樣做會導致很多痛苦。 – monkut

+0

你的意思是創建應用程序是正確的方式? –

+0

是的,startapp應該給你一個包含\ _ \ _init \ _ \ _。py文件和views.py文件的應用程序「文件夾」(如果不是在這裏創建的話)。 'APP_NAME.views.home'正在view.py文件的「APP_NAME」文件夾中尋找「home」功能。 – monkut

回答

0

您是否已在'APP_NAME.__init__.py'中實現了您的主頁功能;如果沒有,你的代碼將無法正常工作,因爲沒有什麼可以稱爲

0
python manage.py startapp news 

在你創建news目錄下有一個views.py。現在讓我們添加的東西:

from django.http import HttpResponse 
def index(request): 
    return HttpResponse("Hello") 
現在

urls.py你補充一點:

(r'^news/$', 'news.index'), 

剛開始devserver python manage.py runserver和瀏覽器指向http://localhost:8000/news/

你應該看到 「Hello」。

現在您可以在您的news/views.py中添加更多內容 - 如details,archive等等。

另外,請確保您想要導入的每個目錄中都有一個空的__init__.py文件。 from app.views import something如果應用程序目錄中沒有init-file,將不起作用。