我正在研究创建表单的DjangoBook Chapter7 tutorial。
我的问题是我只能从views.py
或books
目录导入一个contact
文件。因此,我只能看到当时导入的任何views.py文件创建的页面。
我相信我需要在两个目录之间进行区分,以便Django不会混淆(由于我的可能性很差)。我还包括了我的项目目录的图像,这可能有助于理解问题。
联系导入工作
from mysite.views import hello, current_datetime, hours_ahead, display_meta
from contact import views
#from books import views
urlpatterns = patterns('',
...
#url(r'^search-form/$', views.search_form),
#url(r'^search/$', views.search),
url(r'^contact_form/$', views.contact),
)
图书导入工作
from mysite.views import hello, current_datetime, hours_ahead, display_meta
#from contact import views
from books import views
urlpatterns = patterns('',
....
url(r'^search-form/$', views.search_form),
url(r'^search/$', views.search),
#url(r'^contact_form/$', views.contact),
)
我的项目结构。我正在使用Pydev在Eclipse中工作。
实施的联系人和图书导入都会出现以下错误
AttributeError at /search/
'module' object has no attribute 'search_form'
任何帮助都一如既往地受到赞赏。
答案 0 :(得分:3)
您可以使用as
声明:
from contact import views as contact_views
from books import views as books_views
和通话视图:
url(r'^search-form/$', books_views.search_form),
url(r'^search/$', books_views.search),
url(r'^contact_form/$', contact_views.contact),
答案 1 :(得分:1)
您应该将urls.py放在应用程序中,详见part 3 of the tutorial。
在应用程序目录中创建urls.py
,
contact
- __init__.py
- views.py
- models.py
- urls.py
books
- __init__.py
- views.py
- models.py
- urls.py
在book / urls.py中,添加以下内容:
from django.conf.urls import patterns, url
from .views import search, search_form
urlpatterns = patterns('',
url(r'search-form/$', search_form, name='search_form'),
)
然后在您的主urls.py
中添加以下内容:
url(r'^books/', include('book.urls')),
请浏览official tutorial,因为django图书网站已过时。