Где в Django пользователь становится AnonymousUser? - PullRequest
1 голос
/ 21 августа 2011

Я пытаюсь выяснить, где и когда именно request.user становится AnonymousUser.Я искал через весь бэкэнд Auth, но не могу найти его.Я смотрю не в том месте?

Я знаю, что каждый пользователь, который не является Аутентифицированным пользователем, становится AnonymousUser, но мне нужно знать, где / когда это происходит для некоторого кода, который я создаю.

Буду признателен за любую помощь.

Ответы [ 3 ]

5 голосов
/ 21 августа 2011

contrib\auth\__init__.py:80

def get_user(request):
    from django.contrib.auth.models import AnonymousUser
    try:
        user_id = request.session[SESSION_KEY]
        backend_path = request.session[BACKEND_SESSION_KEY]
        backend = load_backend(backend_path)
        user = backend.get_user(user_id) or AnonymousUser()
    except KeyError:
        user = AnonymousUser()
    return user
4 голосов
/ 21 августа 2011

это все в django.contrib.auth.middleware модуле - смотрите здесь: https://github.com/django/django/blob/master/django/contrib/auth/middleware.py#L49 для деталей.

0 голосов
/ 03 ноября 2018

метод выхода из системы "contrib / auth / init .py" также влияет на AnonymousUser () для request.user, посмотрите код ниже:

if hasattr(request, 'user'):
    from django.contrib.auth.models import AnonymousUser
    request.user = AnonymousUser()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...