我正在尝试在具有id的url路径中应用我的自定义身份验证中间件
但是得到这个错误。
from .views import Profile
app_name = 'account'
from employer.middlewares.auth import auth_middleware
urlpatterns =[
path('dashboard/pages-profile/<int:user_id>', auth_middleware(Profile.as_view()), name='profile'),
]
我的身份验证中间件是这样的:
从django.http导入HttpResponseRedirect
def auth_middleware(get_response):
def middleware(request):
return_url = request.META['PATH_INFO']
if not request.session.get('user_id'):
return HttpResponseRedirect(f'{reverse("account:login")}?return_url={return_url}')
response = get_response(request)
return response
return middleware
您需要将自定义中间件挂接到settings.py中middleware中定义的中间件链中。您当前放置的路径语句需要一个基于函数或类的视图。因此,您试图通过将视图包装在路径语句中来激活中间件,这是不正确的。当你寻找";自定义中间件教程";在django文档中。