Механизм поиска Django с различными представлениями в зависимости от параметров поиска - PullRequest
0 голосов
/ 12 июля 2011

Я пытаюсь реализовать механизм поиска в Django, но я не могу понять, как лучше всего это сделать.

У меня есть поле со списком и текстовое поле в качестве параметров seacrh.В выпадающем списке есть две опции, такие как «A» и «B», и в зависимости от этой опции должны запускаться разные представления.

Однако, поскольку эти две опции имеют общие свойства, такие как min-max length of textbox ивскоре, я считаю, что при нажатии кнопки поиска она должна перейти к некоторому общему значению search view, и после того, как текстовое поле проверено, или нет, в зависимости от параметра в выпадающем списке соответствующая страница должна быть перенаправлена ​​на соответствующую страницу с заданным запросом.

main / 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 в качестве постпараматора, но я не смог этого сделать.

Кроме того, мне интересно, является ли моя структура правильным и безопасным способом такого поиска?Каков наилучший подход для реализации такого поиска?

Спасибо

1 Ответ

0 голосов
/ 12 июля 2011

Если вы знаете javascript, выполните поиск (отправка формы?) Из javascript;так что в основном вы проверяете, что выбрал пользователь, и соответственно выбрали конечную точку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...