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 .