Как сделать исключение для некоторых слов - Regex в шаблоне django url? - PullRequest
0 голосов
/ 15 октября 2018

На моем веб-сайте люди могут посещать профили других с URL-адресом, например https://example.com/slug-profile, вот такой шаблон:

path('<slug:slug>',views.profile,name='profile')

Я также хочу, чтобы пользователи переходили на settings, notifications:

path('settings',views.param,name='param')
# https://example.com/settings

path('notifications',views.notifications,name='notifications')
# https://example.com/notifications

Но в этом случае settings будет рассматриваться как слизняк.Я уже установил функцию, позволяющую пользователям не иметь slug, например settings или notifications.

. Я вижу, что некоторые веб-сайты используют префикс или что-то подобное

www.example.com/<strong>user</strong>/settings/
www.twitter.com/<strong>i</strong>/notifications/

В моем проекте я бы сделал:

re_path(r'^(?P<slug>\w{5,})$',views.profile,name='profile')

path('i/settings',views.param,name='param')

i или user никогда не будет рассматриваться как профиль slug, так как выражение регулярного выражения slug должно содержать не менее 5 символов.

Как использовать эти слова или список слов ['settings','notifications'] в качестве исключений в шаблоне регулярных выражений?

Или

Нужно ли мне идти с примером, который содержит i user в URL?

1 Ответ

0 голосов
/ 15 октября 2018

Решение проще, чем это.Просто укажите ваши конкретные URL сначала ;поскольку шаблоны всегда совпадают по порядку, настройки и уведомления будут соответствовать собственным путям, а не пути слагов.

...