Skip to main content
 首页 » 编程设计

python之Django : Passing multiple args in HttpResponseRedirect reverse function

2025年05月04日30qlqwjy

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

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

 #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”,但出现了类似的错误。请帮忙。

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

 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.     

请您参考如下方法:

我在 urls.py 中对应函数 url 的正则表达式是错误的。显然 Django 查看 urls.py 来确定 View 函数的输入类型,在我的例子中是“DemoVar.views.success”。由于 url 的正则表达式不允许“空格”,django 给出了一个错误。我更改为正则表达式以适应包含空格的输入。

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