python - Django : Passing multiple args in HttpResponseRedirect reverse function

标签 python django url django-views

我试图在 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/

相关文章:

python - App Engine 批量加载器

python - 如何限制 python 版本的 Google App Engine 中特定方法的允许执行时间?

django - 保存表单数据会重写同一行

android - 在 Android 上通过自定义 URL 方案打开但不重启应用程序

ruby-on-rails - Rails 公共(public)目录的绝对 URL

python - 尽管设置了 STATIC_URL 和 STATIC_ROOT,DJango 仍找不到静态文件

python - sklearn train_test_split;保留训练集中列中的唯一值

python - Django2.1.7项目urls.py无法正常工作(给出404错误)

django - mod_wsgi (3.4-14)/Apache 2.4.12/Red Hat (6.7)/Django 1.8.2 卡在负载下

php - 将 URL 中的 ID 替换为用户名