我尝试在Django中实现搜索机制,但我无法弄清楚最好的方法是什么。
我有一个组合框和一个文本框作为seacrh参数。组合框中有两个选项,如“A”和“B”,根据该选项,应运行不同的视图。
但是,由于这两个选项有共同的属性,例如min-max length of textbox
,很快就会出现,我会考虑点击搜索按钮时,它应该转到一些常见的search view
,并且在文本框之后是验证或不验证,取决于组合框中的选项,应该根据请求将页面重定向到正确的页面。
主要/ views.py
def search(request):
if request.method == 'POST':
type = request.POST['searchType']
searchvalue = request.POST['searchvalue']
if len(searchvalue) > 200:
return render_response(request, 'search/error.html', {'message':'bidi'})
if type == 'A':
return redirect('/A/search/')
elif type == 'B':
return redirect('/B/search/')
else:
return render_response(request, 'search/error.html', {'message':'errormessa'})
A / views.py
def search(request):
...
B / views.py
def search(request):
...
但是,正如您所看到的,当我重定向到view A
或view B
时,我需要将searchvalue
作为后续参数传递,但我无法做到。
此外,我想知道我的结构是否适当且安全地进行搜索?实施此类搜索的最佳方法是什么?
由于
答案 0 :(得分:0)
如果您了解javascript,请从javascript进行搜索(表单提交?);所以基本上你检查用户选择了什么并适当地选择了端点。