首页 > 解决方案 > Django 视图没有正确重定向

问题描述

当使用发布请求调用视图功能 - 索引时,它不会重定向。函数内部执行打印。找不到原因。我将 return redirect('/result') 更改为 return HttpResponse("some text") ,但它也不起作用。我使用 Django 1.9.5。

我的代码:

data = {"number" : 0}

@csrf_exempt
def result(request):
    global data
    response = "solution: " + str(data['number'])
    return HttpResponse(response)

@csrf_exempt 
def index(request):         
    global data
    if request.method == 'POST':
        uploadFile1 = request.FILES['file1']
        uploadFile2 = request.FILES['file2']
        text1 = ''
        text2 = ''
        with open('file1', 'wb+') as file1:     
            text1 = uploadFile1.read()
        with open('file1', 'wb+') as file2:
            text2 = uploadFile2.read()
        data = calcpy.views.getNumber(str(text1), str(text2))
        print('test') #this executes
        return redirect("/result")
    
    template = loader.get_template('main.html')
    context = {'solution' : 0}
    return HttpResponse(template.render(context))

我的 urls.py 代码:

from django.conf.urls import patterns, include, url

from . import views
import version.models

web_srv_prefix = version.models.getWebSrvPrefix()

urlpatterns = patterns('',
                       url(r'^' + web_srv_prefix + '/ajax/(?P<module>\w+)/(?P<function>\w+)/', views.ajax, name='ajax'),
                       url(r'^$', views.index, name='index'),
               url(r'^result/$', views.result, name='result')
        
)

标签: python-3.xdjango

解决方案


redirect接受 url名称而不是路径,使用这个:

return redirect('result')

推荐阅读