Перенаправление урлов в 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?