Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django URL路径中使用下一个页面_Django_Django Views - Fatal编程技术网

如何在Django URL路径中使用下一个页面

如何在Django URL路径中使用下一个页面,django,django-views,Django,Django Views,我有两个来自django.contrib.auth的URL类视图: path('login/', auth_views.LoginView.as_view( template_name='accounts/login/login.html'), name='my_login'), path('logout/', auth_views.LogoutView.as_view( template_name='accounts/logout/logout.html', ne

我有两个来自
django.contrib.auth
的URL类视图:

path('login/', auth_views.LoginView.as_view(
       template_name='accounts/login/login.html'), name='my_login'),


path('logout/', auth_views.LogoutView.as_view(
      template_name='accounts/logout/logout.html', next_page=XXXX), name='my_logout'),
LogoutView
中传递到下一页
的正确语法是什么?例如:

next_page='accounts/login/'
next_page='accounts/login/login.html'
next_page=my_login
next_page='my_login'
next_page=reverse_lazy('my_login')

您可以将
my\u login
作为
next\u页面的值传递给。基本上是它的用途


但正如@WillemVanOnsem所说,您不需要传递
模板\u名称
,因为您将重定向到
我的登录名
url。

反向(“我的登录名”)
。但是在这里,传递
模板\u name=…
下一页=…
是没有意义的,因为只有在没有
下一页的情况下才会呈现模板
LoginView
LogoutView
不是相互依赖的。如果您提供
下一页
重定向到该页,则
LogoutView
将不会呈现任何内容。只有当您传递一个
模板\u名称
,并且没有
下一页
,它才会呈现一个页面。我认为您误解了模板,因为
URL
和模板之间没有关系。您可以在多个视图(以及URL)上使用同一模板,也可以在同一视图中使用不同的模板。Web服务器外部不存在模板,事实上完全可以创建一个没有任何模板的Django网站。不,它覆盖了
dispatch(…)
函数(请参阅),这意味着如果定义了
next_页面
,它将重定向,无论它是GET/POST,等。如果没有
下一页
,它将为GET/POST呈现模板。但默认情况下,这是某种“重定向”视图:它注销用户,并重定向到页面。
path('logout/', auth_views.LogoutView.as_view(next_page='my_login'), name='my_logout'),