当我提交表单时,它会转到未知网址

时间:2012-11-09 10:20:18

标签: django django-models django-forms django-views

这是我的查看功能:

def search(request):
    c = {}
    c.update(csrf(request))
    if request.method == 'POST': 
        form = Search(request.POST) 
        if form.is_valid():
            search_query=form.cleaned_data['query']
            #1
            pi=add.add(search_query)
            return HttpResponse('polls/search.html',{'pi': pi}, c) 
    else:
        return render_to_response('polls/search.html', c)

这是我的网址文件:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^search/$', 'polls.views.search'),
    url(r'^admin/', include(admin.site.urls)),
)

这是我的模板:

 <form action="/polls/search" method="post">{% csrf_token %}
  <p><label for="query_label">query:</label>
    <input type="text" name="query_txt" id="query_txt_id" /></p>
  <input type="submit" value="Submit" />
 </form>

 {% if pi %}
    <ul>
    {% for p in pi %}
        <li>{{p}}</li>
    {% endfor %}
    </ul>
{% else %}
    <p>No Results are available.</p>
{% endif %}

当我点击提交按钮时,它不会转到同一页面。它总是寻找像“民意调查/搜索”这样的另一条道路。但是,我的url文件中没有提到它。

你能帮我吗?

2 个答案:

答案 0 :(得分:1)

表单帖子是action param中的url。由于您的行动参数为/poll/search,因此会转到该网址。

答案 1 :(得分:0)

因为这是您指定为表单action参数的内容。如果你想让它去其他地方,可以在那里放一个不同的值(如果你想让它转到同一页面,根本没有值)。