そのため、検索機能を作成していますが、検索結果が表示されるときに、以前に入力したクエリを検索ボックスに残しておきたいと思います。現在、私がこれを行っている方法は、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 開発にかなり慣れていないので、助けていただければ幸いです。