将模板变量加入URL,满足反向匹配
Add template variable into URL and satisfy reverse match
我找到了一种将变量注入 URL 每个 的方法,但我的反向匹配不起作用。我需要使用重新路径和使用正则表达式吗?
当前url.py
path('student/item/drilldown/<str:type>/<int:num>/',views.StudentBehaviorListView.as_view(),name='student_item_list_drilldown'),
原文w/hard-coding:
<a href="{%url 'registration:student_item_list_drilldown' type='grade' num=6%}">
使用变量注入:
<a href="{%url 'registration:student_item_list_drilldown'%}?type=grade&num={{i.grade}}">{{i.grade}}th Grade</a>
错误信息:
NoReverseMatch at /registration/dashboard/
Reverse for 'student_item_list_drilldown' with no arguments not found. 1 pattern(s) tried: ['registration/student/item/drilldown/(?P<type>[^/]+)/(?P<num>[0-9]+)/\Z']
这个:
{% url 'registration:student_item_list_drilldown' %}
将在读取为 html 之前尝试查找名为 student_item_list_drilldown
的路径。这就是它尝试(但失败)在 {% url 'registration:student_item_list_drilldown' %}
中找到 <str:type>
和 <int:num>
的原因。您必须将该变量包含在 {% url ... %}
括号内。
最好的方法是:
{% url 'registration:student_item_list_drilldown' 'grade' i.grade %}
我找到了一种将变量注入 URL 每个
当前url.py
path('student/item/drilldown/<str:type>/<int:num>/',views.StudentBehaviorListView.as_view(),name='student_item_list_drilldown'),
原文w/hard-coding:
<a href="{%url 'registration:student_item_list_drilldown' type='grade' num=6%}">
使用变量注入:
<a href="{%url 'registration:student_item_list_drilldown'%}?type=grade&num={{i.grade}}">{{i.grade}}th Grade</a>
错误信息:
NoReverseMatch at /registration/dashboard/
Reverse for 'student_item_list_drilldown' with no arguments not found. 1 pattern(s) tried: ['registration/student/item/drilldown/(?P<type>[^/]+)/(?P<num>[0-9]+)/\Z']
这个:
{% url 'registration:student_item_list_drilldown' %}
将在读取为 html 之前尝试查找名为 student_item_list_drilldown
的路径。这就是它尝试(但失败)在 {% url 'registration:student_item_list_drilldown' %}
中找到 <str:type>
和 <int:num>
的原因。您必须将该变量包含在 {% url ... %}
括号内。
最好的方法是:
{% url 'registration:student_item_list_drilldown' 'grade' i.grade %}