我是Django的新手,我正在尝试在我的项目中实现Django登录所需的中间件,以便能够将所有未登录的用户引导到具有登录视图的索引页面
我安装了pip install django-login-required-middleware
,在我的INSTALLED_APPS
设置中添加了login_required
,并在中间件中添加了login_required.middleware.LoginRequiredMiddleware
。然后,在我的设置中,我忽略了我想向用户显示的视图,即使他们没有登录
设置.py
LOGIN_REQUIRED_IGNORE_VIEW_NAMES = [
'index',
'register'
]
然而,当我运行服务器时,我得到了错误
Not Found: /accounts/login/ [22/Jan/2020 12:27:56] "GET /accounts/login/?next=/ HTTP/1.1" 404 4417
在我的浏览器中:
Request Method: GET Request URL: http://127.0.0.1:8000/accounts/login/?next=/
它似乎会自动将我指向帐户,即使我的应用程序名为movies\u app,而不是accounts。有人知道怎么解决这个问题吗?多谢各位
url.py
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
from .views import editprofile
from . import views
app_name = 'movies_app'
urlpatterns = [
path('', views.login, name='login'),
path('browse/', views.index, name='index'),
path('register/', views.register, name='register'),
path('movies/', views.allMovies, name='allMovies'),
path('movies/<int:pk>/', views.movie, name='movie'),
path('movies/<int:pk>/rate', views.addRating, name='rate'),
path('my-list/', views.myMovies, name='my-list'),
path('my-list/<int:pk>/delete', views.deleteFavoriteMovie, name='favorite-movie-delete'),
path('profile/', views.profile, name='register'),
path('editprofile/', views.editprofile, name='editprofile'),
path('logout/', views.logout, name='logout'),
path('movie-video', views.movieVideo, name='movie-video')
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
您的中间件正在工作,并将您重定向到默认登录页面
/accounts/login/
要自定义默认登录页面,请将^{} 添加到您的设置中,例如
最后,您有
app_name = 'movies_app', so you should include this when referring to URL patterns from this app. For example, your
登录名\必需\忽略\查看\名称`应该是:相关问题 更多 >
编程相关推荐