Как организовать гладкий редирект в Django для нового Url-имени принципала

Я хочу изменить систему формирования url на своем сайте. Старые URL (которые индексировались поисковыми системами и сайтами, строящими ссылки) имеют вид: https://<hostname>/<old_site_section_name>/<id>/ Я хочу изменить на: https://<hostname>/<new_site_section_name>/<product_brand-name>/

Итак, индексируемый url теперь выглядит так: https://allgid.ru/Mnt/4149 и должен быть в будущем как: https://allgid.ru/Monitor/acer-v227qabmix

как сделать редирект в urls.py в Django: Теперь там:

urlpatterns = [
path('<slug:cat_>/<slug:product_>', views.page_new_Product, name='product'),
...
]

Могу ли я использовать некоторое регулярное выражение непосредственно в urlpattern вот так: path(r'^\+\/\d+$', RedirectView.as_view(url='<new_url>', permanent=True))

Но как я могу получить это re r'^\+\/\d+$' и передать его как аргумент некоторой функции; эта функция подключится к моей базе данных, получит <new_site_section_name> по r'^\+ части re и <product_brand-name> по \d+ части re, таким образом 'id' модели (таблицы в db) и вычислит правильный новый url как: /Monitor/acer-v227qabmix, чтобы поместить его на место <new_url> в RedirectView.

Могу ли я сделать это как: path(r'^\+\/\d+$', My_Function()) и это My_Function возвращает RedirectView.as_view(url='<new_url>', permanent=True)? Будет ли это работать?

Или есть какой-то другой способ сделать это?

Вернуться на верх