繁体   English   中英

Django登录所需的中间件不起作用

[英]Django login required middleware not working

我是 Django 的新手,我正在尝试在我的项目中实现 django-login-required-middleware,以便能够将所有未登录的用户引导到具有登录视图的索引页面。

我安装了pip install django-login-required-middleware ,加入login_required在我的INSTALLED_APPS设置并添加login_required.middleware.LoginRequiredMiddleware在我的中间件。 然后在我的设置中,即使他们没有登录,我也会忽略我想向用户显示的视图。

设置.py

LOGIN_REQUIRED_IGNORE_VIEW_NAMES = [
    'index',
    'register'
]

但是,当我运行服务器时,出现错误

未找到:/accounts/login/ [22/Jan/2020 12:27:56] "GET /accounts/login/?next=/HTTP/1.1" 404 4417

在我的浏览器中:

请求方式:GET 请求地址: http : //127.0.0.1 : 8000/accounts/login/?next=/

似乎它会自动将我定向到帐户,即使我的应用程序名为 movies_app 而不是帐户。 有谁知道如何解决这个问题? 非常感谢!

网址.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/

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

LOGIN_URL = '/login/'

最后,你有app_name = 'movies_app', so you should include this when referring to URL patterns from this app. For example, your 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` 应该是:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM