2013-06-13 30 views
1

我正在做簡單的表單處理。我的項目名稱是'mysite',並且我使用startapp.I創建了文件夾'books'。我在'mysite'文件夾內創建了一個名爲'templates'的文件夾。在'模板'裏面,我做了一個搜索表單的html文件,它的名字是'search_file.html'。 製作該html文件的代碼寫在下面。在django導入錯誤發生模塊找不到

<html> 
<head> 
    <title>Search</title> 
</head> 
<body> 
    <form action="/search/" method="get"> 
     <input type="text" name="q"> 
     <input type="submit" value="Search"> 
    </form> 
</body> 
</html> 

然後,我在位於'books'文件夾內的views.py中寫下了以下代碼。

from django.shortcuts import render 

def search_form(request): 
    return render(request, 'search_form.html') 

之後我在urls.py中寫了代碼,它位於'mysite'文件夾中,如下所示。

from mysite.books import views 

urlpatterns = patterns('', 

    url(r'^search-form/$', views.search_form), 

) 

我的文件樹如下圖所示:

的主文件夾是「mysite的」,並在此:

- books 

    - __init__.py 
    - admin.py 
    - models.py 
    - tests.py 
    - views.py 

- mysite 

    - __init__.py 
    - settings.py 
    - urls.py 
    - wsgi.py 

- templates 

    - search_form.html 

- manage.py 

但是,當我在瀏覽器中運行,則錯誤出現提這些事。

導入錯誤在/搜索表格/

無模塊名爲books

,這是什麼錯誤的解決方案?

+0

你可以發佈整個stacktrace嗎? –

+0

對不起,我只是一個初學者,所以我不知道stacktrace是什麼意思。你能解釋一下嗎? –

+0

錯誤,請:) –

回答

0

您是否在文件夾書中創建了一個名爲__init__.py的文件?

+0

是的,我已經在文件夾'books'內創建了__init__.py文件夾。 –

+0

您會收到循環導入錯誤。你的外部文件夾被稱爲'mysite',你的設置被稱爲'mysite',將你的'mysite'重命名爲其他設置,我相信它應該可以工作 –

+0

但是我並沒有在項目mysite中命名mysite文件夾當我開始mysite項目時,它會自動在mysite項目中創建mysite文件夾。 –

1

最好的解決辦法是隻移動內部的mysite/mysite的/你的「本本」包,並添加圖書到您的settings.INSTALLED_APPS

但是,如果你想保持它就像則:

你的主「mysite」文件夾不是python包。這意味着你需要在主文件夾中添加初始化的.py,參見下文:

你應該有:

mysite/ 
    books/ 
     __init__.py 
     admin.py 
     models.py 
     tests.py 
     views.py 

    templates/ 
     search_form.html 

    __init__.py 
    settings.py 
    urls.py 
    wsgi.py  
    manage.py 

編輯manage.pysettings

編輯settings.py更換mysite.settings和替換ROOT_URLCONF = 'mysite.urls'ROOT_URLCONF = 'urls'WSGI_APPLICATION = 'mysite.wsgi.application'WSGI_APPLICATION = 'wsgi.application'

添加<path to>/templates到您的設置。TEMPLATE_DIRS

添加books到您的INSTALLED_APPS

編輯wsgi.pysettings

取代mysite.settings現在,你應該能夠從books import views

也做,因爲你可以看到,那麼你就可以刪除的mysite/mysite文件夾

+0

我做了你告訴我要做的所有事情,但仍然發生了同樣的錯誤。是否有解決此問題的其他解決方案? –

+0

更新了我的回覆。讓我知道如果你仍然有問題 –

+0

這不是一個好的解決方案 –