Django, Как передать значения HTML-формы в URL при отправке формы?
У проекта есть url, как показано ниже,
path('post/<str:state>/',SearchView.as_view(),name='search-data')
У меня есть HTML форма, при заполнении и отправке она должна передавать данные заполненной формы в URL.
<form action={url 'search-data'} method="get" >
{% csrf_token %}
<input type="text" name="fname">
</form>
Но это не работает так, как должно быть.
Вам не нужно передавать аргумент <str:state>
в ваших urlpatterns просто передайте path('post/search',SearchView.as_view(),name='search-data')
или что вы хотите, но проблема в том, что когда вы передаете аргумент как этот post/<str:state>/
, вам нужно указать его в действии вашей формы.
например, так {% url 'search-data' state %}
изначально у вас нет никакого состояния, поэтому вы должны получить имя состояния из вашей формы, так что в конечном итоге ваш код выглядит так
<form action={% url 'search-data'%} method="get" >
{% csrf_token %}
<input type="text" name="fname">
<input type="submit" value="search">
</form>
и затем в ваших представлениях вы должны получить его из метода request.GET
следующим образом
def search(request):
state = request.GET.get('fname', None)
.... do whatever you want
return response_or_data