Небезопасное перенаправление на URL с протоколом 'account'

Я пытаюсь перенаправить на страницу входа с обратным url через промежуточное ПО .

Я получаю эту ошибку, может ли кто-нибудь ответить на вопрос, почему я получаю эту ошибку и как решить эту ошибку

from django.shortcuts import redirect
def auth_middleware(get_response):
     def middleware(request):
        print("Middleware")
        return_url = request.META['PATH_INFO']
        if not request.session.get('user_id'):
            return redirect(f'account:login?return_url={return_url}')
        response = get_response(request)
        return response

    return middleware

Django сделает редирект на account:login?return_url=some_url, но браузер этого не понимает: поскольку он видит URL, начинающийся с account:, он предполагает, что account: является протоколом.

Мы можем обратить представление с помощью reverse(…) [Django-doc]:

from django.urls import reverse
from django.http import HttpResponseRedirect

def auth_middleware(get_response):
     def middleware(request):
        print("Middleware")
        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
Вернуться на верх