我有如下所示的Django url路由:
app_name = 'courses'
urlpatterns = [
url(r'./(?P<courseid>[0-9]+)/$', views.viewcourse, name='view_course'),
url(r'./(?P<courseid>[0-9]+)/review/$', views.reviewcourse, name='review_course')
]".“在正则表达式中,通常会被一个段塞替换,例如:
courses/computer-science/3/
现在,我需要在我的“查看课程”模板中有一个链接,将用户带到复习页面,即:
courses/computer-science/3/review/
我可以通过简单地将review附加到当前url来完成此操作:
{{ request.path }}review
然而,我宁愿使用模板url标签以“正确”的方式来做。
{% url 'courses:review_course' courseid=course.pk %}
但是,这会产生以下结果:
courses/30/review,这当然会失败。
是否可以使用{% url%}标记生成正确的链接,而不必更改".“添加到名称捕获参数中?
发布于 2017-09-21 00:06:14
更改您的urls.py:
url(r'(?P<course_type>[a-z_-]+)/(?P<courseid>[0-9]+)/$', views.viewcourse, name='view_course')现在,在您的视图中,您可以访问kwargs中的course_type,然后可以加载任何您想要的东西(因为我没有代码,所以我在猜测您在做什么:)。
在您的模板中:
{% url 'courses:review_course' courseid=course.pk course_type=something%}https://stackoverflow.com/questions/46326762
复制相似问题