Django:在HttpResponseRedirect反向函数中传递多个args

时间:2011-03-31 12:14:41

标签: python django url django-views

我正试图在django的HttpResponseRedirect反向函数中传递多个args,但我一直收到此错误

使用参数'()'和关键字参数“{'company':u'Company','sid':47606734}'找不到'DemoVar.views.success'。 < / p>

 #Calling function
 return HttpResponseRedirect(reverse('DemoVar.views.success',kwargs={'sid':int(ph), 'company':company}))

 #Function definition
 def success(request, sid, company):

 #urls.py
 url(r'^success/(?P<sid>[\d]+)/(?P<company>[\w\d-]+)/$','success', name='DemoVar_success'),

我尝试在反向函数中传递'args',但是有类似的错误。请帮忙。

更新:尝试将args作为元组传递。输出保持不变。

 return HttpResponseRedirect(reverse('DemoVar.views.success',args=(ph, company,)))

 #Error 
 Reverse for 'DemoVar.views.success' with arguments '(47606734, 'Dummy Company')' and keyword arguments '{}' not found.    

2 个答案:

答案 0 :(得分:1)

我在urls.py中使用相应函数url的正则表示错误。显然Django查看urls.py来确定视图函数的输入类型,在我的例子中是'DemoVar.views.success'。由于url的正则表达式不允许'space',django给出了一个错误。我改为使用正则表达式来容纳包含空格的输入。

 url(r'^success/(?P<sid>[\d]+)/(?P<company>[\s\w\d-]+)/$','success', name='DemoVar_success'),

答案 1 :(得分:0)

您的网址名称为DemoVar_success而不是DemoVar.views.success