Django重定向视图与args

时间:2015-01-23 20:13:54

标签: python django redirect url-redirection

我在Django中遇到重定向问题:

我的观点

def myP(request,namep):    
     return render(request,"site/myP.html")

def create(request):    
    nom="alaild"    
    ....    
    return redirect(reverse(myP,namep=nom))

此视图的网址

url(r'^create$', 'create', name='create'),    
url(r'^myp/(?P<namep>\d+)','myP', name="myp"),

我有这个错误:

reverse() got an unexpected keyword argument 'name'

我想创建视图重定向到myP视图,但myP视图有1个参数,我不知道怎么做...

2 个答案:

答案 0 :(得分:2)

可能是

reverse(myP, kwargs={'namep': nom})

答案 1 :(得分:1)

在您看来,nom是一个字符串,但在您的网址格式中,您使用的是\d+(一个或多个数字)。

一种常见的方法是接受一个'slug',它可以包含字母,数字,下划线和连字符:

url(r'^myp/(?P<namep>[\w-]+)','myP', name="myp"),

然后您需要修复reverse来电的语法。以下任何一种都应该有效。

reverse(myP, kwargs={'namep': nom})
reverse(myP, args=(nom,))