Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
159 views
in Technique[技术] by (71.8m points)

python 3.x - Django view doesn't properly redirect

When view function - index is called with post request it doesn't redirect. Print inside the function executes. Can't find reason. I changed return redirect('/result') to return HttpResponse("some text") and it does not work either. I use Django 1.9.5.

My code:

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))

My urls.py code:

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')
        
)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

redirect accepts a url name not a path, use this:

return redirect('result')

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...