Как включить вход в суперпользователи из внешнего интерфейса в Django? - PullRequest
0 голосов
/ 19 сентября 2019

Я создал представление для входа в систему, но Django только аутентифицирует суперпользователя.Пользователи, не являющиеся суперпользователями, не могут войти в систему. Я хочу, чтобы пользователь, не являющийся суперпользователем, осуществлял вход из внешнего интерфейса

def logingin(request):
    if request.method == 'POST':
        username = request.POST.get('username','')
        password = request.POST.get('password','')
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('/')
        else:
            return redirect('/signup')

    return render(request, 'login.html')

Кто-нибудь может мне сказать, какие изменения мне нужно внести в мои коды?

1 Ответ

0 голосов
/ 19 сентября 2019

ваш is_active флаг не суперпользователей должен быть установлен в false

https://docs.djangoproject.com/en/2.2/ref/contrib/auth/#django.contrib.auth.models.User.is_active

ниже приведена выдержка

Этоне обязательно контролирует, может ли пользователь войти в систему. Бэкэнды аутентификации не обязаны проверять флаг is_active, но бэкэнд по умолчанию (ModelBackend) и RemoteUserBackend делают.Вы можете использовать AllowAllUsersModelBackend или AllowAllUsersRemoteUserBackend, если хотите разрешить неактивным пользователям входить в систему.В этом случае вы также захотите настроить AuthenticationForm, используемую LoginView, так как он отклоняет неактивных пользователей.Имейте в виду, что методы проверки разрешений, такие как has_perm () и аутентификация в администраторе Django, все возвращают False для неактивных пользователей.

https://stackoverflow.com/a/18209379/3053228

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...