Tengo el siguiente middleware:
class TestMiddleware(): def __init__(self, get_response): self.get_response = get_response def __call__(self, request): print(getattr(request, "user", None)) return self.get_response(request)
La función de print
siempre imprime None
. Agregué el middleware antes y después de la línea django.contrib.auth.middleware.AuthenticationMiddleware
en settings.py, pero en cualquier caso, obtengo None
. Además, estoy logueado como usuario.
¿Qué más puedo probar? Estoy usando Django 1.11.
Su middleware debe estar después 'django.contrib.auth.middleware.AuthenticationMiddleware'
si desea acceder al usuario. No necesita usar getattr
, solo request.user
debería funcionar. Dependiendo de si ha iniciado sesión o no, será el usuario registrado o un AnonymousUser
.