我试图在 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'),
关于python - Django : Passing multiple args in HttpResponseRedirect reverse function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5499668/