Django搜索机制具有不同的视图,具体取决于搜索选项

时间:2011-07-12 06:30:55

标签: django search django-views

我尝试在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 Aview B时,我需要将searchvalue作为后续参数传递,但我无法做到。

此外,我想知道我的结构是否适当且安全地进行搜索?实施此类搜索的最佳方法是什么?

由于

1 个答案:

答案 0 :(得分:0)

如果您了解javascript,请从javascript进行搜索(表单提交?);所以基本上你检查用户选择了什么并适当地选择了端点。