Моя конфигурация бэкенда строки поиска не реагирует должным образом на мое утверждение условия
В настоящее время я настраиваю (backend) панель поиска в моем проекте Django для поиска в базе данных. Я поместил оператор 'if or else' для случая, когда пользователь просто нажимает кнопку поиска, ничего не вводя в поле поиска. Кажется, что оператор 'if or else' работает неправильно, потому что он игнорирует часть 'if' и переходит сразу к части else. Я пробовал разные способы исправить это, но, похоже, у меня ничего не получается. Как мне это исправить.
views.py
def results(request):
if request.method == "POST":
searched = request.POST['searched']
return render(request, 'Results.html', {'searched': searched})
else:
return render(request, 'Results.html', {})
url.py
path('results', views.results, name='results')
вот мои результаты
С помощью поискового запроса вы пытаетесь получить данные на основе вашего ввода. поэтому вместо post используйте запрос get здесь & дайте вашему полю ввода имя, чтобы получить доступ к нему в вашем представлении.
Шаблон:
<form>
<input type="text" id="search-area" placeholder="Search Artist" name="searched">
</form>
Методом по умолчанию для формы является GET, поэтому не нужно указывать method="get"
Вид:
def results(request):
if request.method == "GET":
searched = request.GET.get['searched']
return render(request, 'Results.html', {'searched': searched})
else:
return render(request, 'Results.html', {})