在get_success_URL的FileView方法中,我使用了‘display: redirected’作为要重定向的URL。但是我收到了一个错误
Reverse for 'redirect' with arguments '()' and keyword arguments '{'pk': 15}' not found. 1 pattern(s) tried: ['display/success/']请求方法: POST请求URL:http://127.0.0.1:8000/display/upload/ Django版本: 1.10.dev20160512164014异常类型: NoReverseMatch异常值:
我是不是遗漏了什么?
display/views.py
class FileView(FormView):
template_name = 'display/upload.html'
form_class = FileForm
def form_valid(self, form):
file_upload = FileModel(file=self.get_form_kwargs().get('files')['file'])
file_upload.save()
self.id = file_upload.id
return HttpResponseRedirect(self.get_success_url())
def get_success_url(self):
return reverse('display:redirect', kwargs={'pk': self.id})
def redirect(request):
return render(request,"display/success.html")display/urls.py
from django.conf.urls import url
from django.conf.urls.static import static
from django.conf import settings
from . import views
from display.views import FileView
urlpatterns = [
url(r'^start/', views.initial,name='home'),
url(r'^upload/',FileView.as_view(),name='upload'),
url(r'^success/',views.redirect,name='redirect'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)发布于 2016-05-21 18:06:06
看看这一行:
Reverse for 'redirect' with arguments '()' and keyword arguments '{'pk': 15}' not found.错误信息是告诉你出了什么问题。您已经传递了一个关键字参数,当它试图反向/查找url时,它不会传递,因为您的url被指定为:
url(r'^success/',views.redirect,name='redirect')不接受任何争论。一种可能是让你的网址变成这样:
^success/(?P<pk>\d+)/$https://stackoverflow.com/questions/37366319
复制相似问题