Django Axes работает, но не хранит ни попыток доступа, ни неудач

Заранее прошу прощения, я новичок во всем этом (стек, Django и Axes).

Я создаю простой сайт, где можно создавать пользователей, и я реализовал django axes. Он работает в том смысле, что блокирует вас после неудачных попыток на основе имени пользователя и IP. Он даже регистрирует их в админ-панели в разделе Axes "Access logs". Но "Попытки доступа" и "Неудачные попытки доступа" пусты. Ниже приведен мой код users/views.py, а под ним - users/urls.py:

@axes_dispatch
def login(request):
    if request.user.is_authenticated:
        return redirect('home')

    if request.method == 'POST':
        form = UserLoginForm(request, data=request.POST)
        
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            user = authenticate(request, username=username, password=password)

            if user is not None:
                auth_login(request, user)
                messages.success(request, f'Welcome back, {username}!')
                return redirect('home')  # successful login redirect
            else:
                # signal for failed attempt
                signals.user_login_failed.send(
                    sender=user.__class__,
                    request=request,
                    credentials={'username': username}
                )
                messages.error(request, 'Invalid username or password.')

        else:
            # signal for invalid
            signals.user_login_failed.send(
                sender=None,
                request=request,
                credentials={'username': request.POST.get('username')}
            )
            messages.error(request, 'Invalid username or password.')

    else:
        form = UserLoginForm()

    return render(request, 'users/login.html', {'form': form})

Вот пользовательский urls.py:

    urlpatterns = [
    path('login/', views.login, name='login'),
    path('logout/', views.logout, name='logout'),
    path('register/', views.register, name='register'),
    path('change_profile/', views.profile, name='change_profile'),
    path('change_password/', views.change_password, name='change_password'),
    path('lockout/', views.lockout, name='lockout'),
]

Вот все в settings.py, что содержит Axes:

        INSTALLED_APPS = [

        'axes',
    
    ]


    MIDDLEWARE = [

    'axes.middleware.AxesMiddleware', #Axes
    
    ]


    AUTHENTICATION_BACKENDS = [
    #Axe has to be first
    'axes.backends.AxesStandaloneBackend',


    'django.contrib.auth.backends.ModelBackend',
]


AXES_FAILURE_LIMIT = 5
AXES_COOLOFF_TIME = timedelta(minutes=5)
AXES_RESET_ON_SUCCESS = True
AXES_LOCKOUT_CALLABLE = 'users.signals.custom_lockout_response'
AXES_LOCKOUT_PARAMETERS = ['username', 'ip_address']
AXES_LOCKOUT_URL = '/lockout/'
Вернуться на верх