NoReverseMatch at / upload /重定向时

时间:2018-04-25 07:51:11

标签: python django

当我执行代码时,出现以下错误

NoReverseMatch at /upload/ Reverse for 'compare' with keyword arguments '{u'uploaded_file_url2': '/media/SAMPLE1.xlsx', u'uploaded_file_url': '/media/SAMPLE.xlsx'}' not found. 1 pattern(s) tried: ['compare/']

的myapp / urls.py

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

urlpatterns = [
        url(r'^upload/', views.upload,name='upload'),
        url(r'^compare/(?P<uploaded_file_url>\w+)/(?P<uploaded_file_url2>\w+)$',views.compare,name='compare'),
                 ]

views.py

from django.shortcuts import render,redirect
from django.conf import settings
from django.core.files.storage import FileSystemStorage
from django.conf.urls import url
from django.http import HttpResponseRedirect
from django.urls import reverse
def upload(request):
    if request.method == 'POST':
        myfile=request.FILES['myfile']
        myfile2=request.FILES["myfile2"]
        fs = FileSystemStorage()
        filename = fs.save(myfile.name, myfile)
        filename2=fs.save(myfile2.name, myfile2)
        uploaded_file_url = fs.url(filename)
        uploaded_file_url2 = fs.url(filename2)
        return redirect(reverse('myapp:compare',kwargs={"uploaded_file_url":uploaded_file_url,"uploaded_file_url2":uploaded_file_url2 }  ))

    return render(request, 'myapp/upload.html')

def compare(request,uploaded_file_url,uploaded_file_url2):

    a=uploaded_file_url
    b=uploaded_file_url2
    #some code here

    return render(request,'myapp/compare.html',{"a":a,"b":b})

这里我想传递uploaded_file_url和uploaded_file_url2进行比较

1 个答案:

答案 0 :(得分:0)

您正尝试将上传中的所有数据传递给反向函数,以便它是URL的一部分。但是你的“比较”URL根本不会有任何参数。

更改URL以使其确实需要参数,或者在GET参数或会话中传递上传的文件名。