Django HttpResponseRedirect 将我重定向错误

问题描述 投票:0回答:1

例如,我想重定向链接

mydomain.com/my_app/0 -------> 重定向至:mydomain.com/my_app/finance

但它重定向到 mydomain.com/my_app/0/finance

你能帮我解决这个问题吗?

浏览量:

from django.shortcuts import render
from django.http import HttpResponse , HttpResponseNotFound , Http404 , HttpResponseRedirect 
articles = {
    'finance' : 'finance page',
    'sports' : 'sports page'
}
def news_view (request,topic):
    return HttpResponse(articles[topic])

def num_page_view(request,num_page):
    topics_list = list(articles.keys())
    topic = topics_list[num_page]
    return HttpResponseRedirect(topic)

网址:

from django.urls import path
from . import views
urlpatterns = [
    path('<int:num_page>/',views.num_page_view),
    path('<str:topic>/',views.news_view)]
python django django-views httpresponse django-urls
1个回答
0
投票

我认为,使用

redirect
函数而不是
HttpResponseRedirect

为此,首先为每个路径命名

from django.urls import path
from . import views

urlpatterns = [
    path('<int:num_page>/', views.num_page_view, name='num_page_view'),
    path('<str:topic>/', views.news_view, name='news_view'),
]

最后使用

redirect
功能

from django.shortcuts import redirect

def num_page_view(request, num_page):
    topics_list = list(articles.keys())
    topic = topics_list[num_page]
    return redirect('news_view', topic=topic)
© www.soinside.com 2019 - 2024. All rights reserved.