所以,我正在制作一个搜索功能,我希望在呈现搜索结果时,之前输入的查询保留在搜索框中。目前,我这样做的方式是发送一个 POST 请求,获取查询并将其作为变量发送回模板。但是由于某种原因,它只适用于查询的第一个单词,并且所有后续单词都会被删除。当我在一个
标签,但它的出现正如我所期望的那样。有什么我做的不太对吗?
<div id="searchwrapper">
<form action="/search" method="post"> {% csrf_token %}
{% if old_query %}
<input type="text" class="searchbox" name="s" value={{old_query}} />
{% else %}
<input type="text" class="searchbox" name="s" value="" />
{% endif %}
<input type="image" src="static/images/search-icon.svg" class="searchbox_submit" value="" />
</form>
</div>
def search(request):
context = {}
context.update((csrf(request)))
results_string = ""
if request.POST:
results_string = find(request)
old_query = request.POST['s']
context.update({"old_query": old_query})
search_bar = render_to_string("search.html", Context(context))
return HttpResponse(search_bar + results_string)
我不认为 find 方法是相关的,但是如果您认为它有用,请告诉我,我可以发布它。模板是“search.html”的相关部分就像我说的那样,如果我将行添加<p>{{ old_query }}</p>
到该{% if old_query %}
部分,则会显示正确的值,但目前如果我使用像这样的查询,hello stackoverflow!
我只会得到“hello”作为搜索字段的值。
这可能很愚蠢,但我对 Web 开发还很陌生,因此感谢您提供任何帮助。