2013-07-03 85 views
1

嘗試將args和kwargs傳遞給視圖時獲取錯誤Don't mix *args and **kwargs in call to reverse()!。在這一點上我已經嘗試了很多東西,並且無法擺脫這種困擾 - 完全停留在如何將兩者都傳遞給視圖。將args和** kwargs傳遞給視圖的正確方法是什麼?

我需要通過unipartnewfile到另一個視圖。

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', unipart, newfile = newfile) 

VIEWS.PY(view_part)

def view_part(request, part_id, newfile = None): 
+0

嘗試'重定向('view_part',unipart,newfile)'它告訴你錯誤中的問題,使用args或kwargs,而不是兩者。 ('redirect'包含一個自動調用''reverse') – Ngenator

回答

3

你必須有這些進口:

from django.core.urlresolvers import reverse 
from django.http import HttpResponseRedirect 

和你return聲明應該是:

return HttpResponseRedirect(
    reverse('path.to.function.view_part', args=(unipart, newfile)) 
) 

相關文檔here

+0

謝謝,但在這種情況下,我得到'NoReverseMatch'的錯誤:''store.views.view_part'與參數'(u'54',u'file1。 – user1328021

+0

嘗試:'reverse('path.to.function.view_part',kwargs = {'unipart':unipart,'newfile':newfile))' – karthikr

+0

@ txt')'和關鍵字參數'{}'not found。 karthikr仍然收到相同的信息...我也做了''part_id':unipart' – user1328021

相關問題