获取错误Reverse for 'view_part' with arguments '()' and keyword arguments '{'part_id': u'54'}' not found
。
URLS.PY
url(r'^(\d+)/(\d+)/convert/$', 'store.views.changetool', name = "convert"),
url(r'^(\d+)/view_part/$','store.views.view_part',name="view_part"),
VIEWS.PY(changetool
)
def changetool (request, id, unipart=None):
part = Part.objects.get(id=id)
file = str (part.content)
newfile = FormatConversion.ConvertToNew(file)
return redirect('view_part', part_id = unipart)
VIEWS.PY(view_part
)
def view_part(request, part_id, newfile = None):
...
答案 0 :(得分:4)
您return redirect('view_part', part_id = unipart)
必须是return redirect('view_part', unipart)
请参阅here:
通过传递视图的名称和可选的一些位置或关键字参数;使用reverse()方法将反向解析URL:
修改强>
确定。
在reverse()函数中,您必须在'args'kwarg中传递位置参数(reverse('some_ulr_name', args=[1945]
),在'kwargs'kwarg中传递关键字参数(reverse('some_url_view', kwargs={'year': 1945})
),因为您可以使用其他参数你不想发送给网址的kwargs。
但是,当你使用redirec()时,它会将所有的args和kwargs发送给反向方法。
一些例子:
redirect("view_part", unipart)
# Will do a
HttpResponseRedirect( reverse("view_part", args=[unipart]) )
#and a
redirect("view_part", part_id=unipart)
#will do a
HttpResponseRedirect( reverse("view_part", kwargs={'part_id':unipart}) )
最后一个选项失败,因为您的网址没有名称,请参阅here以向网址栏目添加名称