Django 中的高级 URL
Advanced URLs in Django
任务是写两个url模式。
第一个将采用单个参数 <path>
,可以是任意 url 具有随机深度:
test/dorogi/
或
test/foo/bar/as/deep/as/you/want
第二个与第一个相同,但最后有一个数字。
test/dorogi/1/
它有两个参数:<path>
和 <pk>
。最后一个是数字。
我为第一个模式做了一个解决方案:
url(r'^(?P<path>.*)/', mptt_urls.view(model='activities.models.Category', view='activities.views.category',
slug_field='slug'), name='activities'),
但是我如何制作第二个并防止它们之间发生任何冲突?
应该是这样的:
url(r'^...', views.ArticleDetailView.as_view(), name='article-detail'),
只需将第二个参数添加到第一个模式的正则表达式中:
r'^(?P<path>.*)/(?P<pk>\d+)/$'
但请务必将 放在 网址列表中的第一个网址之前。
(请注意,您一定要像我上面那样用 $ 终止您的模式。)
任务是写两个url模式。
第一个将采用单个参数 <path>
,可以是任意 url 具有随机深度:
test/dorogi/
或
test/foo/bar/as/deep/as/you/want
第二个与第一个相同,但最后有一个数字。
test/dorogi/1/
它有两个参数:<path>
和 <pk>
。最后一个是数字。
我为第一个模式做了一个解决方案:
url(r'^(?P<path>.*)/', mptt_urls.view(model='activities.models.Category', view='activities.views.category',
slug_field='slug'), name='activities'),
但是我如何制作第二个并防止它们之间发生任何冲突?
应该是这样的:
url(r'^...', views.ArticleDetailView.as_view(), name='article-detail'),
只需将第二个参数添加到第一个模式的正则表达式中:
r'^(?P<path>.*)/(?P<pk>\d+)/$'
但请务必将 放在 网址列表中的第一个网址之前。
(请注意,您一定要像我上面那样用 $ 终止您的模式。)