Перенаправление URL с помощью Django на внешний сайт - PullRequest
1 голос
/ 25 апреля 2019

Я пытаюсь перенаправить несколько страниц на внешний сайт с моего сайта Django. Обычно я использую htaccess для такого типа перенаправления, но в этом случае я не могу изменить конфигурацию на сервере, и мне нужно выполнить перенаправление в Django. Вот несколько примеров:

http://djangosite.com/products/10 -> http://example.com/products/10 http://djangosite.com/products/search -> http://example.com/products/search http://djangosite.com/products/10/edit -> http://example.com/products/10/edit http://djangosite.com/products/10/review -> http://example.com/products/10/review

Могу ли я сделать это перенаправление с Django? Вот что у меня есть:

path('products/<slug:slug>', RedirectView.as_view(url='http://example.com/products/'+slug, permanent=True)),

но возвращается NameError: name 'slug' is not defined

Есть ли способ сделать это?

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Вы можете использовать форматирование словаря в старом стиле для вставки kwargs.

path('products/<slug:slug>', RedirectView.as_view(url='http://example.com/products/%(slug)s', permanent=True)),
0 голосов
/ 25 апреля 2019

Создайте новый вид перенаправления и переопределите метод get_redirect_url() как,

class CustomRedirectView(RedirectView):
    def get_redirect_url(self, *args, **kwargs):
        return "http://example.com/products/{}".format(kwargs['slug'])

и в ваших URL используйте только что созданное представление

path('products/<slug:slug>', CustomRedirectView.as_view(permanent=True)),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...