首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“如何替换re”。在Django模板url标签中

“如何替换re”。在Django模板url标签中
EN

Stack Overflow用户
提问于 2017-09-20 23:58:55
回答 1查看 200关注 0票数 0

我有如下所示的Django url路由:

代码语言:javascript
复制
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%}标记生成正确的链接,而不必更改".“添加到名称捕获参数中?

EN

回答 1

Stack Overflow用户

发布于 2017-09-21 00:06:14

更改您的urls.py:

代码语言:javascript
复制
url(r'(?P<course_type>[a-z_-]+)/(?P<courseid>[0-9]+)/$', views.viewcourse, name='view_course')

现在,在您的视图中,您可以访问kwargs中的course_type,然后可以加载任何您想要的东西(因为我没有代码,所以我在猜测您在做什么:)。

在您的模板中:

代码语言:javascript
复制
{% url 'courses:review_course' courseid=course.pk course_type=something%}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46326762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档