I have a simple form which shall take a user input and directly send the user to a dynamic url using the input. Inputing "111" into the form shall send the user to http://127.0.0:8000/number_input=111
Somehow i can not get it done, since i do not know how to get direct variable value from the form to the view immediately. I can build it with 2 views but that looks somehow ugly and inconvenient.
Here is what i have so far:
The Form: (within index.html)
<form action={% url 'number_view'%} method="POST">
{% csrf_token %}
<p><input type="text" name="inp_number" placeholder="Insert Number"/></p>
<p><input type="submit" value="Submit"/></p>
</form>
views.py:
def number_view(request):
if request.method == 'POST':
context = {'number': request.POST['inp_number']}
return render(request, 'number.html', context)
urls.py
from . import views
urlpatterns = [
path('number_input=<int:number>/', views.number_view, name='number_view')
]
The dynamic part here (int:number) will make the code fail, since iam not sending a value from the form, right? But i only know how to send static values (i.e. action={% url 'my_view' 111 %}. How can i send direct dynamic values from the form itself (the value that the user inputs in the submit button)?
number.html
<h2>This page is for number {{ number }}</h2>