Django-使用slug和kwargs重定向reverse()

时间:2019-03-22 17:05:46

标签: python django

项目URLS.py

path('<slug:slug>/', include('orgs.urls')),

应用程序URLS.py

path('donate/', views.org_site_view, name='org_donate', kwargs=dict(page='donate')),

看起来像:mysite.org/samporg/donate
其中samporg是slug变量。

我正在尝试使用相同的Donate View'org_donate'重定向到成功页面。

鉴于我已经尝试过:

return redirect(reverse('org_donate', slug='samporg', kwargs={'page': 'donate_success'}))

return redirect(reverse('org_donate', kwargs={'page':'donate_success'}))

return redirect('org_donate', slug='samporg', kwargs={'page':'donate_success'})

return redirect('org_donate', kwargs={'slug':'samporg','page':'donate_success'})

没有工作。所有引发自变量或反向错误

Reverse for 'org_donate' with keyword arguments '{'kwargs': {'slug': 'samporg', 'page': 'donate_success'}}' not found. 1 pattern(s) tried: ['(?P<slug>[-a-zA-Z0-9_]+)\\/donate\\/$']

1 个答案:

答案 0 :(得分:2)

我认为 path() 函数不会接受 kwargs 作为参数。因此,将其删除

# app/urls.py
path('donate/', views.org_site_view, name='org_donate'),

在您看来,应该是

return redirect('org_donate', kwargs={'slug':'samporg'})