Передача параметра URL в шаблоне Django, используя форму - PullRequest
0 голосов
/ 01 февраля 2019

Я пишу страницу, которая принимает идентификатор и находит пользователя, который соответствует этому идентификатору.это шаблон URL, который я написал в urls.py :

re_path(r'^users/id=(?P<username>[0-9]{9})$' , views.usershow , name = 'usershow') ,

Я хочу передать имя пользователя с помощью форм, поэтому я написал это в templates :

<form action="{% url 'CMS:usershow' %}" method="GET" >
{% csrf_token %}
<input name="id" type="number" placeholder="search">
<button type="submit">find</button>
</form>

но это показывает мне эту ошибку :

Reverse for 'usershow' with no arguments not found. 1 pattern(s) tried: ['dashboard/users/id=(?P<username>[0-9]{9})$']

Как я могу передать его, используя формы с этим шаблоном URL?

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Это не так, как работают формы.Удалите имя пользователя из шаблона:

path(r'^users/' , views.usershow , name = 'usershow') ,

и в представлении получите значение из запроса;

username = request.GET["id"]
0 голосов
/ 01 февраля 2019

Сначала убедитесь, что путь к приложению CMS urls.py .

Во-вторых, передайте значение идентификатора пользователя, как показано ниже:

<form action="{% url 'CMS:usershow' user_id %}" method="GET" >

REF: https://docs.djangoproject.com/en/2.1/topics/http/urls/#s-reverse-resolution-of-urls

...