2013-06-13 29 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

这不是一个好的解决方案 –