我正在使用Django Haystack和Woosh作为Searchengine。 在我的应用程序中,我有一个完美的搜索栏。
如果我在搜索表单中输入内容,我会得到以下网址: /订单/ Q = “” 搜索字符串 “”
以下视图给出了正确的结果。从结果我建立了多种形式。 当提交这些表单中的一个时,我更新了值并将它们重定向到它们来自的相同URL,这使得整个视图再次运行(更好的是不要问为什么)。 我的问题是搜索字符串,请参阅下面的最后一行。
我的观点包含类似的内容
...
if 'q' in request.GET:
search_form = SearchForm(request.GET)
if search_form.is_valid():
cd = search_form.cleaned_data
results = SearchQuerySet().models(MyLookupModel).filter(content=cd['q']).load_all()
results_pk = results.values_list('pk', flat=True)
...
...
if myform_1.is_valid():
# do something
return HttpResponseRedirect("/order/" + ###What to put here###)
没有search_form,我只需重定向到/ order /,这会使视图再次运行。 这意味着当用户搜索某些内容时,他会获得结果,如果他进行了更改并提交了这些内容,我希望他能够使用更新的模型再次显示相同的结果页面。
即。如果有人搜索“哈利波特”,结果就在
/ order /?q =哈利波特
所以我的HttpResponseRedirect应该看起来像
return HttpResponseRedirect("/order/?=Harry Potter")
我无法弄清楚如何获取searchquery或调用该视图的url。当我使用像get_full_path()这样的东西时,我只得到... / order /而没有搜索查询。
我非常感谢每一位帮助,谢谢你提前。 最好的祝福, 伯尼