Auth_middleware.<locals>.middleware() получил неожиданный аргумент ключевого слова 'user_id'
Я пытаюсь применить мое пользовательское промежуточное ПО auth в пути url, который имеет id .
Но получаю эту ошибку.
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'),
]
А мое промежуточное ПО auth следующее:
from django.http import 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
Вам нужно подключить ваше пользовательское промежуточное ПО к цепочке промежуточного ПО, определенной в MIDDLEWARE в вашем settings.py. Указатель пути, куда вы сейчас просто помещаете его, ожидает функцию или представление на основе класса. Поэтому вы пытаетесь активировать свое промежуточное ПО, просто обернув представление в оператор пути, что неправильно. Смотрите также объяснения, когда вы ищете "custom middleware tutorial" в документации django.