Django 向视图传递*args和**kwargs的正确方法是什么?
获取错误Django 向视图传递*args和**kwargs的正确方法是什么?,django,Django,获取错误在调用reverse()时不要混合使用*args和**kwargs尝试将args和kwargs传递给视图时。在这一点上,我已经尝试了很多东西,但我的头脑无法摆脱这个问题——完全被困在如何将两者都传递给一个视图上 我需要将unipart和newfile传递到另一个视图 url(r'^(\d+)/(\d+)/convert/$', 'store.views.changetool', name = "convert"), url(r'^(\d+)/view_part/$','store.vie
在调用reverse()时不要混合使用*args和**kwargs代码>尝试将args和kwargs传递给视图时。在这一点上,我已经尝试了很多东西,但我的头脑无法摆脱这个问题——完全被困在如何将两者都传递给一个视图上
我需要将unipart
和newfile
传递到另一个视图
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)
VIEWS.PY(视图\零件)
您必须具有这些导入:
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
您的return
语句应该是:
return HttpResponseRedirect(
reverse('path.to.function.view_part', args=(unipart, newfile))
)
相关文档。谢谢,但在这种情况下,我得到了错误NoReverseMatch
:带参数的'store.views.view_part'(u'54',u'file1.txt')和关键字参数'{}'的反转。
尝试:反转('path.to.function.view_part',kwargs={'unipart unipart unipart'newfile':newfile))
@karthikr仍然收到相同的消息…我也做了'part\u id':unipart
@Ngenator我想你看到的正则表达式是错误的-我传递给的是第二个带有view\u part的正则表达式-它需要一个数字,我还想传递一个字符串作为kwarg。@user1328021你的参数与URL不匹配:you'p将file1.txt
作为第二个参数,但URLconf有\d+
因此只需要数字。尝试重定向('view_part',unipart,newfile)
它告诉您错误中的问题,使用args或kwargs,而不是两者都使用。(重定向
包括对reverse
的自动调用)
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
return HttpResponseRedirect(
reverse('path.to.function.view_part', args=(unipart, newfile))
)