我是Django的新手
我试图在点击提交按钮时调用python函数/视图。
我已做了必要的更改,告诉url文件在哪里查看。
这是我网站的urls.py,我关注民意调查应用。
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', include(admin.site.urls)),
]
这是民意调查的urls.py。
urlpatterns = [
# ex: /polls/
url(r'^$', views.index, name='index'),
# ex: /polls/5/
url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
# ex: /polls/5/results
url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name='results'),
# ex: /polls/5/vote
url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name='vote'),
# ex: /test/
url('/test/$', views.test, name='test'),
]
我想在点击提交按钮时调用名为test的函数。
index.html的一部分
<form action="/polls/test/" method="get">
Find: <input type="text" name="" size="35">
<input type="submit" value="Add Stuff">
</form>
现在,当点击此按钮时,如果收到错误,说明Django尝试了这些URL并且无法找到它。
Page not found (404)
Request Method: GET
Request URL: http://localhost:8000/polls/test/
Using the URLconf defined in mysite.urls, in this order:
patterns, in this order:
^polls/ ^$ [name='index']
^polls/ ^(?P<question_id>[0-9]+)/$ [name='detail']
^polls/ ^(?P<question_id>[0-9]+)/results/$ [name='results']
^polls/ ^(?P<question_id>[0-9]+)/vote/$ [name='vote']
^polls/ /test/$ [name='test']
^admin/
The current URL, polls/test/, didn't match any of these.
我错过了一些非常明显的东西吗? 我真的很感激任何帮助。
感谢。
答案 0 :(得分:3)
从测试网址中删除前导/
。您还应该在正则表达式的开头添加^
,以使其与test
匹配,但不与xtest
匹配。
url('^test/$', views.test, name='test'),
另外,您可以使用url tag来防止在模板中对网址进行硬编码。
<form action="{% url 'test' %}" method="get">