Django登录所需中间件不工作

2024-05-19 10:09:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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)

Tags: pathdjangonamefromimportregisterappindex
1条回答
网友
1楼 · 发布于 2024-05-19 10:09:26

您的中间件正在工作,并将您重定向到默认登录页面/accounts/login/

要自定义默认登录页面,请将^{}添加到您的设置中,例如

LOGIN_URL = '/login/'

最后,您有app_name = 'movies_app', so you should include this when referring to URL patterns from this app. For example, your登录名\必需\忽略\查看\名称`应该是:

LOGIN_REQUIRED_IGNORE_VIEW_NAMES = [
     'movies_app:index',
     'movies_app:register'
]

相关问题 更多 >

    热门问题