【发布时间】:2018-02-03 22:57:04
【问题描述】:
我在使用继承代码制作功能搜索栏时遇到问题。我在正确创建 search_results 页面时遇到了最大的麻烦。
我将我的 search_results 页面精简为只有一行。 search_results.html:<div>You searched for {{ query }}</div> 但现在,search_results 页面没有呈现 {{ query }}。不会出现用户先前输入的文本。该页面上显示的所有内容都是“您搜索过”
searchbox.html
<form class="search" action="{% url 'search' %}" method='post'>
{% csrf_token %}
<input type="search" placeholder="Search here..." name="usr_query"
value='{{ query }}' required>
<button type="submit">Search</button>
</form>
views.py
def search(request):
query = request.POST['usr_query']
print "QUERY: "
print query
t = loader.get_template('gtr_site/test_search_results.html')
c = Context({ 'query': query,})
return HttpResponse(t.render(c))
我有点谨慎并添加了“打印”语句......它确实打印出了用户在搜索栏中输入的内容。但这不是在我的 search_results 页面上生成的。
这是什么原因?
编辑:
添加 urls.py
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^about/$', views.about, name='about'),
url(r'^contact/$', views.contact, name='contact'),
url(r'^search_engine/$', views.statement_search_engine, name='statement-search') # <- url for searchbox.html,
url(r'^test_search_results/$', views.search, name='test-search'), # <- url for searchresults.
url(r'^(?P<statement_id>.+)/$', views.statement_page, name='statement'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
【问题讨论】: