【发布时间】:2018-03-01 19:01:34
【问题描述】:
我有如下所示的 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')
]
“。”在正则表达式中通常会被替换为 slug,例如:
courses/computer-science/3/
现在我需要在“查看课程”模板中添加一个链接,以将用户带到评论页面,即:
courses/computer-science/3/review/
我可以通过简单地将review 附加到当前网址来做到这一点:
{{ request.path }}review
但是,我宁愿使用模板 url 标签以“正确”的方式进行操作
{% url 'courses:review_course' courseid=course.pk %}
但是,这会产生:
courses/30/review,当然失败了。
是否可以使用 {% url %} 标签生成正确的链接,而无需更改“。”到名称捕获参数中?
【问题讨论】:
-
你为什么不做
url(r'(?P<course_type>[a-z_-]+)/(?P<courseid>[0-9]+)/$', views.viewcourse, name='view_course')并在你的视图参数中捕捉course_type以获得好的呢?
标签: django django-urls