我在尝试使用Django的重定向时遇到NoReverseMatch错误,并且无法弄清楚我做错了什么。
观点:
def addConjugatedForm(request):
#update database
return redirect('findConjugatedForms', chapter=ch.chapter, verse=verse.verse, book=b.name)
def findConjugatedForms(request, book, chapter, verse):
#return a view
在urls.py中:
url(r'^findConjugatedForms/(?P<book>\w+)/(?P<chapter>\d+)/(?P<verse>\d+)/', 'findConjugatedForms'),
网址作为网址,即“... findConjugatedForms / Romans / 3/24”返回页面。但是当提交该页面上的表单时,它不会重定向回来。
我在我的网址中命名了参数(这似乎是Stack Overflow上其他问题中的常见问题),并且kwargs的值似乎是正确的。
Reverse for 'findConjugatedForms' with arguments '()' and keyword arguments '{'chapter': 3, 'verse': 24, 'book': u'Romans'}' not found. 0 pattern(s) tried: []
我错过了什么?
答案 0 :(得分:1)
redirect
在内部使用reverse。您需要为URL定义视图名,或使用Python路径或传递可调用对象:
url(r'^findConjugatedForms/(?P<book>\w+)/(?P<chapter>\d+)/(?P<verse>\d+)/',
'findConjugatedForms',
name='findConjugatedForms') # Define a name
此外,在模式中添加后缀'$'
以防止网址与以findConjugatedForms/book/chapter/verse/