Html 处理Django中所有页面的LoginView登录的最佳方法
我是Django的新手,我花了很多时间试图找到解决问题的方法,但没有成功。我有一个包含在base.html文件中的顶部导航栏,每个页面都扩展了base.html。在我的导航栏中,我有一个显示模式(引导)的按钮,我希望这个模式显示登录表单。我的url.py如下所示:Html 处理Django中所有页面的LoginView登录的最佳方法,html,django,modal-dialog,loginview,Html,Django,Modal Dialog,Loginview,我是Django的新手,我花了很多时间试图找到解决问题的方法,但没有成功。我有一个包含在base.html文件中的顶部导航栏,每个页面都扩展了base.html。在我的导航栏中,我有一个显示模式(引导)的按钮,我希望这个模式显示登录表单。我的url.py如下所示: from django.urls import path, include from .views import RegisterView from django.contrib.auth.views import LoginView
from django.urls import path, include
from .views import RegisterView
from django.contrib.auth.views import LoginView, LogoutView, PasswordResetView, PasswordResetDoneView, PasswordResetConfirmView, PasswordResetCompleteView, PasswordChangeView, PasswordChangeDoneView
urlpatterns = [
# Mapping django auth at the root
# The URLs provided by auth are:
# login/ [name='login']
# logout/ [name='logout']
# password_change/ [name='password_change']
# password_change/done/ [name='password_change_done']
# password_reset/ [name='password_reset']
# password_reset/done/ [name='password_reset_done']
# reset/<uidb64>/<token>/ [name='password_reset_confirm']
# reset/done/ [name='password_reset_complete']
#path('', include('django.contrib.auth.urls')),
path('password_reset/', PasswordResetView.as_view(), name='password_reset'),
path('password_reset_done/', PasswordResetDoneView.as_view(), name='password_reset_done'),
path('password_reset/<uidb64>/<token>/', PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
path('password_reset/complete/', PasswordResetCompleteView.as_view(), name='password_reset_complete'),
path('password_change/', PasswordChangeView.as_view(), name='password_change'),
path('password_change/complete/', PasswordChangeDoneView.as_view(), name='password_change_done'),
path('login/', LoginView.as_view(), name='login'),
path('logout/', LogoutView.as_view(), name='logout'),
path('register/', RegisterView.as_view(), name='register'),
]
从django.url导入路径,包括
from.views导入注册表视图
从django.contrib.auth.views导入LoginView、LogoutView、PasswordResetView、PasswordResetDoneView、PasswordResetConfirmView、PasswordResetCompleteView、PasswordChangeView、PasswordChangeDoneView
URL模式=[
#在根目录下映射django auth
#auth提供的URL为:
#login/[name='login']
#注销/[name='logout']
#密码更改/[name='password\u change']
#密码\u更改/done/[name='password\u更改\u完成']
#密码\u重置/[name='password\u重置']
#密码\u重置/done/[name='password\u重置\u完成']
#重置//[name='password\u reset\u confirm']
#重置/完成/[name='password\u reset\u complete']
#路径(“”,包括('django.contrib.auth.url'),
路径('password_reset/',PasswordResetView.as_view(),name='password_reset'),
路径('password_reset_done/',PasswordResetDoneView.as_view(),name='password_reset_done'),
路径('password\u reset//',PasswordResetConfirmView.as\u view(),name='password\u reset\u confirm'),
路径('password\u reset/complete/',PasswordResetCompleteView.as\u view(),name='password\u reset\u complete'),
路径('password_change/',PasswordChangeView.as_view(),name='password_change'),
路径('password\u change/complete/',PasswordChangeDoneView.as\u view(),name='password\u change\u done'),
路径('login/',LoginView.as_view(),name='login'),
路径('logout/',LogoutView.as_view(),name='logout'),
路径('register/',RegisterView.as_view(),name='register'),
]
如上所述,path('login/',LoginView.As_view(),name='login'),
只能在localhost:8000/login
中正确解析{{form}
,但我希望它在所有路径中解析,以实现我想要的。也就是说,如果我导航到localhost:8000/login
并从navbar打开模式,我将看到登录表单,但如果我从localhost:8000/anyOtherPath
从navbar打开模式,它将不会显示登录表单
实现我想要的最好的推荐方式是什么?请让我知道,如果你想看到更多的我的代码,以更好地了解我的情况
总之,我在base.html中有一个导航栏,每个页面都扩展了base.html。导航栏包含一个显示模式的按钮,我希望在该模式下显示登录表单,无论我在哪个页面上
我们将非常感谢您的帮助。先谢谢你