Передача значения формы ввода в переменную URL
Мне нужно передать ввод формы, введенный пользователем, в переменную URL в Django
<form>
<div class="input-group">
<input type="text" name="ticker" class="form-control" placeholder="Search">
<div class="input-group-btn">
<a her="{% url 'Main:search' %}" class="btn btn-default">
<i class="bi bi-search"></i>
</a>
</div>
</div>
</form>
Значение ввода необходимо передать в качестве переменной в следующей логике URL
"{% url 'Main:search' %}"
urls.py
app_name = 'Main'
urlpatterns = [
path("", views.index, name='index'),
path('search/<ticker>', views.search, name='search'),
]
views.py
def search(request, ticker):
ticker = ticker.upper()
result = Symbol.objects.filter(symbol=ticker).first()
if result is not None:
return redirect('Symbol:index', ticker=ticker)
else:
return render(request, 'symbol_not_found.html')
попробуйте это:
the_view.html
:
<form>
<div class="input-group">
<input type="text" name="ticker" class="form-control" placeholder="Search">
<div class="input-group-btn">
<a herf="{% url 'Main:search' ticker %}" class="btn btn-default">
<i class="bi bi-search"></i>
</a>
</div>
</div>
</form>
urls.py
app_name = 'Main'
urlpatterns = [
path("", views.index, name='index'),
path('search/<str:ticker>', views.search, name='search'),
]
views.py
from django.shortcuts import get_list_or_404
from django.urls import reverse
def results(request, ticker):
result = get_list_or_404(Symbol, symbol=ticker) # If list is empty 404
result = result[0] # get the first element in the list
return render(request, reverse('Symbol:index',args=(ticker=ticker,)))
Чтобы получить больше информации, вам следует сделать небольшой вводный проект в Django Docs, особенно эту часть.