使用表单在 django 模板中传递 url 参数
passing url parameter in django template using form
我正在编写一个页面,该页面采用一个 ID 并查找与该 ID 匹配的用户。
这是我在 urls.py:
中写的 URL 模式
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 模式的表单传递它?
首先,确保 CMS 应用的 urls.py 有路径。
其次,传递用户id值如下图:
<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
表单不是这样工作的。从模式中删除用户名:
path(r'^users/' , views.usershow , name = 'usershow') ,
并在视图中从请求中获取值;
username = request.GET["id"]
我正在编写一个页面,该页面采用一个 ID 并查找与该 ID 匹配的用户。 这是我在 urls.py:
中写的 URL 模式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 模式的表单传递它?
首先,确保 CMS 应用的 urls.py 有路径。
其次,传递用户id值如下图:
<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
表单不是这样工作的。从模式中删除用户名:
path(r'^users/' , views.usershow , name = 'usershow') ,
并在视图中从请求中获取值;
username = request.GET["id"]