Django путь к сохранению перенаправления - PullRequest
3 голосов
/ 08 января 2020

В моем urls.py у меня есть:

urlpatterns = [
    url(r'^admin/', admin.site.urls, name='admin'),
    url(r'^django-admin/', RedirectView.as_view(url='/admin/', permanent=True)),
]

Так что, если я go на localhost:8000/django-admin/, он успешно перенаправляет меня на localhost:8000/admin/, а если я go на localhost:8000/django-admin/my-app/, то это также перенаправляет меня на localhost:8000/admin/.

Как я могу сделать localhost:8000/django-admin/my-app/ go на localhost:8000/admin/my-app/? И то же самое для каждого возможного подпути, например localhost:8000/django-admin/my-app/my-view, localhost:8000/django-admin/another-app/, et c?

1 Ответ

3 голосов
/ 08 января 2020

Согласно документам что-то подобное должно работать, вы можете захватывать группы из пути и передавать их по URL-адресу

Данный URL может содержать строку в стиле словаря форматирование, которое будет интерполироваться с параметрами, зафиксированными в URL. Поскольку интерполяция ключевых слов всегда выполняется (даже если аргументы не передаются), любые символы «%» в URL-адресе должны быть записаны как «%%», чтобы Python преобразовывал их в один знак процента на выходе.

url(r'^django-admin/(?P<rest>.*)', RedirectView.as_view(url='/admin/%(rest)s', permanent=True)

Этот веб-сайт особенно полезен для выяснения того, как работают встроенные представления на основе классов http://ccbv.co.uk/projects/Django/2.2/django.views.generic.base/RedirectView/#get_redirect_url

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...