Я пытаюсь реализовать механизм поиска в 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
в качестве постпараматора, но я не смог этого сделать.
Кроме того, мне интересно, является ли моя структура правильным и безопасным способом такого поиска?Каков наилучший подход для реализации такого поиска?
Спасибо