Сконфигурируйте Django URLS.py, чтобы сохранить #anchors в URL после того, как он переписывает его с завершением / - PullRequest
2 голосов
/ 30 июля 2010

В моем приложении django мой URLS.PY настроен на прием запросов к / community / user / id и / community / user / id / с:

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

Iсделал это, так как несколько раз люди добавляли окончание "/", а я не хотел поднимать 404.

Однако части моего приложения javascript иногда добавляют тег привязки в виде:

/community/user/id#anchorIuseInJavscriptToDoSomething

Проблема, с которой я столкнулся, заключается в том, что Django мгновенно перепишет URL-адрес на:

/community/user/id/ 

с окончанием / и удалит # anchorIuseInJavscriptToDoSomething

Мне бы хотелось переписать его так:

/community/user/id#anchorIuseInJavscriptToDoSomething/

Таким образом, мой javascript на странице все еще может видеть якорь и работать.Как можно адаптировать это регулярное выражение для этого?Я не очень хорош в регулярных выражениях, и изучил это на собственном примере ...

Ответы [ 3 ]

2 голосов
/ 03 августа 2010

Вы можете сделать дополнительный слеш необязательным:

url(r'^(?P<username>[\w-]+)/(?P<cardId>\d+)/?$', 'singleCard.views.singleCard', name='singleCardView'),
0 голосов
/ 30 июля 2010

Почему вы хотите изменить его на /community/user/id#anchorIuseInJavscriptToDoSomething/? Это неверно Это должно быть /community/user/id/#anchorIuseInJavscriptToDoSomething. Элемент после хеша не является частью URL и не отправляется на сервер.

0 голосов
/ 30 июля 2010

Браузер должен обрабатывать повторное добавление привязки после перенаправления.Ваша проблема не имеет ничего общего с Джанго.

...