** kwargs总是不给django

时间:2018-06-02 19:16:37

标签: python django django-views django-urls

在我的观点中,我正在重定向为:

return redirect('camera_login', success='False' )

在我的urls.py中:

    url(r'^', CameraLoginView.as_view(), 
        name = "camera_login"),
    url(r'^(?P<success>[a-zA-Z0-9-]+)/$', CameraLoginView.as_view(), 
        name = "camera_login"),

现在我可以看到我的浏览器中的网址被重定向到localhost:8000/False,并且呈现了camera_login.html页面,但是当我调试代码时,我的**kwargs始终没有。

class CameraLoginView(View):

def get(self, request, *args, **kwargs):
    print('kwargs' , self.kwargs)
    success = None
    print('args ', args)
    return render( request,
        'camera_login.html', {'success': success})
终端kwargs {}中的

,kwargs总是空的?我不知道我哪里错了。感谢。

1 个答案:

答案 0 :(得分:3)

您的第一个模式匹配所有内容,因此永远不会达到您的第二个模式。由于第一个模式没有捕获组,因此不会捕获任何kwargs。

您应该确保始终终止您的模式:

url(r'^$', CameraLoginView.as_view(), name = "camera_login"),
url(r'^(?P<success>[a-zA-Z0-9-]+)/$', ...)