【发布时间】:2014-06-14 10:54:33
【问题描述】:
我完成了 Django 初学者教程,我正在尝试完成 [The Django Book: Chapter 7 Forms][1]。我在使用文档中的方法将 URLSconf 链接到 search_forms.html 页面时遇到问题。很可能是因为我使用了单独的 'main' 和 'app' urls.py 文件
谁能帮我确定正确的 URLconf 格式?我想在访问http://127.0.0.1:8000/polls/search-form/ 时看到search_forms.html 页面
我有一个位于 /src/project/urls.py 的主 urls.py 文件
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^polls/', include('polls.urls', namespace="polls")),
url(r'^admin/', include(admin.site.urls)),
)
我还有一个位于 /src/polls/urls.py 的投票 urls.py 你可以看到我已经尝试了一些解决方案。
urlpatterns = patterns('',
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'),
url(r'^(?P<pk>\d+)/results/$', views.ResultsView.as_view(), name='results'),
url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'),
#this one will bring me to the vote page when i type search-form in the browser
#http://127.0.0.1:8000/polls/2/search-form/
#url(r'^(?P<poll_id>\d+)/search-form/$', views.vote, name='search-form'),
#url(r'^/search-form/$', views.search_form, name='search_form'),
url(r'^search-form/$', views.search_form),
#url(r'^(?P<poll_id>\d+)/search-form/$', views.search_form, name='search-form'),
#url(r'^search-form/$', views.search_form),
#url(r'^$', views.search_form, name='search-form/$'),
# url(r'^(?P<poll_id>\d+)/detail_dropdown/$', views.vote, name='detail_dropdown'),
)
我有一个位于 /src/polls/templates/polls/search_form.html 的 search_form.html 页面,其代码与教程中的代码相同
我还在 src/polls/views.py 使用以下代码设置了 search_form 视图
def search_form(request):
return render(request, 'search_form.html')
非常感谢任何帮助。谢谢。
编辑:浏览器错误消息
感谢@Ailistar
我已经尝试使用未注释的 url,这是错误消息。
TemplateDoesNotExist at /polls/search-form/
search_form.html
Request Method: GET
Request URL: http://127.0.0.1:8000/polls/search-form/
Django Version: 1.6.2
Exception Type: TemplateDoesNotExist
Exception Value:
search_form.html
Exception Location: /Library/Python/2.7/site-packages/django/template/loader.py in find_template, line 131
Python Executable: /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
Python Version: 2.7.6
Python Path:
['/Users/brendan/Dropbox/workspace/bias_experiment/src',
'/Library/Python/2.7/site-packages/distribute-0.7.3-py2.7.egg',
'/Library/Python/2.7/site-packages/setuptools-2.2-py2.7.egg',
'/Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg',
'/Library/Python/2.7/site-packages/yolk-0.4.3-py2.7.egg',
'/Library/Python/2.7/site-packages/virtualenv-1.11.4-py2.7.egg',
'/Library/Python/2.7/site-packages/virtualenvwrapper-4.2-py2.7.egg',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages',
'/Library/Python/2.7/site-packages']
Server time: Mon, 28 Apr 2014 20:36:43 +0100
[1]: http://www.djangobook.com/en/2.0/chapter07.html
【问题讨论】:
-
从错误消息中可以明显看出这不是正则表达式的问题,而是模板的问题?
-
只有当你知道这是正确的正则表达式才能使用。 Alasdair 证实了这一点。