Перенаправление урлов в django

У нас есть блог, созданный с помощью Django 4. И у нас есть статьи, где для каждой статьи существует url вроде этого

www.example.com/id/slug

но для некоторых из них мы изменили id и хотим перенаправить старые урлы на новые. Например, мы хотим превратить

www.example.com/2/slug1

to

www.example.com/56/slug1

А это содержимое urls.py:

urlpatterns = [
    path('', views.index, name='index'),

    path('category/carwash/', views.get_carwash, name='carwash'),

    path('<pk>/<custom_slug:persian_slug>/', 
        views.post_detail, name='post_detail'),

]

А вот содержимое файла views.py:

def index(request):
    template_file = 'posts/home.html'
    services = [29, 48, 58, 78]
    for service in services:
        update_default_database(service)
    
    posts = Magazine.objects.filter(service_id__in=services).filter(enable=1).order_by('-created')
    paginator = Paginator(posts, 9)
    page_number = request.GET.get('page')
    page_obj = paginator.get_page(page_number)
    context = {'page_obj': page_obj}
    return render(request, template_file, context)

def get_carwash(request):
    template_file = 'posts/home.html'

    posts = Magazine.objects.filter(service_id=29).filter(enable=1).order_by('-created').using('default')
    paginator = Paginator(posts, 9)
    page_number = request.GET.get('page')
    page_obj = paginator.get_page(page_number)
    context = {'page_obj': page_obj}
    return render(request, template_file, context)

def post_detail(request, pk, persian_slug):
    template_file = 'posts/post/post.html'
    post = get_object_or_404(Magazine, id=pk)
    latest_posts = Magazine.objects.filter(enable=1).filter(service_id__in=[29, 48, 58, 78]).\
        order_by('-created').using('default')[:3]

    subject = ''
    name = ''
    service_id = post.service_id

    context = {'post': post, 'latest_posts': latest_posts, 'subject': subject, 'name': name}

    return render(request, template_file, context)

Как мы можем сделать это в Django 4?

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