使用表单在Django模板中传递url参数

时间:2019-02-01 09:52:16

标签: python django django-templates django-urls

我正在写一个带有ID并找到与该ID匹配的用户的页面。 这是我在 urls.py 中写的URL模式:

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

我想使用表单传递用户名,所以我在模板中编写了该代码:

<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 :(得分:0)

首先,请确保CMS应用的 urls.py 具有路径。

第二,传递用户ID值,如下所示:

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

REF:documentation

答案 1 :(得分:0)

这不是表单的工作方式。从模式中删除用户名:

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

并在视图中从请求中获取值;

username = request.GET["id"]