**kwargs 在 django 中总是给出 none
**kwargs always giving none in django
在我看来,我正在重定向为:
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"),
现在我可以在我的浏览器中看到 url 被重定向到 localhost:8000/False
,并且 camera_login.html
页面已呈现,但是当我调试代码时,我的 **kwargs
总是 none.
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 总是空的?我不知道我哪里错了。谢谢。
您的第一个模式匹配所有内容,因此永远不会达到您的第二个模式。由于第一个模式没有捕获组,因此不会捕获任何 kwargs。
你应该确保你总是终止你的模式:
url(r'^$', CameraLoginView.as_view(), name = "camera_login"),
url(r'^(?P<success>[a-zA-Z0-9-]+)/$', ...)
在我看来,我正在重定向为:
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"),
现在我可以在我的浏览器中看到 url 被重定向到 localhost:8000/False
,并且 camera_login.html
页面已呈现,但是当我调试代码时,我的 **kwargs
总是 none.
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 总是空的?我不知道我哪里错了。谢谢。
您的第一个模式匹配所有内容,因此永远不会达到您的第二个模式。由于第一个模式没有捕获组,因此不会捕获任何 kwargs。
你应该确保你总是终止你的模式:
url(r'^$', CameraLoginView.as_view(), name = "camera_login"),
url(r'^(?P<success>[a-zA-Z0-9-]+)/$', ...)