如何在Django视图中使用带有多个参数的重定向?

时间:2018-07-23 07:10:39

标签: django python-3.x django-views django-urls

我试图从视图中的另一个函数重定向到一个函数。 但我收到以下错误消息

NoReverseMatch at /sigma/status1/
Reverse for 'testview' with keyword arguments '{'amount': 1.000, 'stat':'Approved', 'ref': '10917'}' not found. 1 pattern(s) tried: ['sigma\\/status2/(?P<amount>\\d+)/(?P<stat>[a-z][A-Z]+)/(?P<ref>\\d+)/$']

下面是我的views.py

的对应部分
return redirect(reverse('testview',kwargs={'amount':1.000,'stat':'Approved','ref':str(res['ref'])}))


def payment_status2(request,amount,stat,ref):
  return render(request, 'confirm1.html')

下面是我的urls.py的对应部分

urlpatterns = [
  url('status1/', views.payment_status1),
  url(r'^status2/(?P<amount>\d+)/(?P<stat>[a-z][A-Z]+)/(?P<ref>\d+)/$', views.payment_status2,name="testview"),
  ]

1 个答案:

答案 0 :(得分:0)

您的stat正则表达式不正确:

?P<stat>[a-z][A-Z]+

这表示参数应以小写字母开头,然后是一个或多个大写字母(例如aPPROVED)。您应该将其更改为:

?P<stat>[a-zA-Z]+

?P<stat>\w+