Я пытаюсь реализовать форму, которая отправляет запрос GET, но я хочу передать аргументы, полученные путем извлечения данных из текстового поля.
Вот пример:
urls .py:
urlpatterns = [
path('my-awesome-url/<str:foo>', MyAwesomeView.as_view(), name='my_awesome_url'),
]
views.py:
class MyAwesomeView(View):
def get(self, request, *args, **kwargs):
foo = kwargs['foo']
context = {}
# do some logic here
return render(request, 'my_awesome_template.html', context)
my_awesome_template. html:
{% extends 'base.html' %}
{% block content %}
<form method="get" action="{% url 'my_awesome_url' foo %}">
<input type="text" name="foo">
<button type="submit" value="Submit">Submit</button>
</form>
{% endblock %}
Однако этот код не выполняет свою работу. Я получаю эту ошибку:
NoReverseMatch
Реверс для my_awesome_url, аргументы не найдены. Попробован 1 шаблон (ов): ['my \ -awesome \ -url \ / (? P [^ /] +) $']
Я не хочу использовать POST, потому что я хотите, чтобы пользователь мог добавить страницу в закладки. Кроме того, когда я пытался жестко закодировать URL без записи параметров, токен csrf также передавался в URL. Я хочу, чтобы URL был: my-awesome-website.tld/my-awesome-url/foo