配置Django URLS.py以便在#anchors重写它之后将其保留在URL中

时间:2010-07-29 21:44:09

标签: python regex django django-urls

在我的django应用程序中,我将URLS.PY配置为接受对/ community / user / id和/ community / user / id /的请求:

url(r'^(?P<username>[\w-]+)/(?P<cardId>\d+)/$', 'singleCard.views.singleCard', name='singleCardView'),

我这样做有时人们会添加一个结尾“/”而我不想提出404。

然而,我的javascript应用程序的某些部分有时会以以下形式添加锚标记:

/community/user/id#anchorIuseInJavscriptToDoSomething

我遇到的问题是Django会立即将URL重写为:

/community/user/id/ 

带结尾/并删除#anchorIuseInJavscriptToDoSomething

我喜欢把它重写为:

/community/user/id#anchorIuseInJavscriptToDoSomething/

这样我页面中的javascript仍然可以看到锚点和工作。怎么能适应这个正则表达式来做到这一点?我不是很擅长正则表达式,并且通过示例学习了这个......

3 个答案:

答案 0 :(得分:2)

你可以使尾随斜线可选:

url(r'^(?P<username>[\w-]+)/(?P<cardId>\d+)/?$', 'singleCard.views.singleCard', name='singleCardView'),

答案 1 :(得分:0)

浏览器应该在重定向后处理重新附加锚点。你的问题与Django无关。

答案 2 :(得分:0)

为什么要将其更改为/community/user/id#anchorIuseInJavscriptToDoSomething/?这是无效的。它应该是/community/user/id/#anchorIuseInJavscriptToDoSomething。散列后的元素不是URL的一部分,也不会发送到服务器。