Estoy revisando este sitio web, pero parece que no puedo entender cómo hacerlo, ya que no funciona. Necesito verificar si el usuario actual del sitio está conectado (autenticado) y estoy intentando:
request.user.is_authenticated
a pesar de estar seguro de que el usuario ha iniciado sesión, solo devuelve:
>
Puedo hacer otras solicitudes (desde la primera sección en la URL anterior), como:
request.user.is_active
que devuelve una respuesta exitosa.
python
django
authentication
Almiar
fuente
fuente
Respuestas:
Actualización para Django 1.10+ :
is_authenticated
ahora es un atributo en Django 1.10. El método todavía existe para la compatibilidad con versiones anteriores, pero se eliminará en Django 2.0.Para Django 1.9 y anteriores :
is_authenticated
Es una función. Deberías llamarlo asíComo señaló Peter Rowell, lo que puede estar tropezando es que en el lenguaje de plantilla predeterminado de Django, no agrega paréntesis para llamar a las funciones. Entonces puede haber visto algo como esto en el código de la plantilla:
Sin embargo, en el código Python, de hecho es un método en la
User
clase.fuente
Django 1.10+
Use un atributo, no un método:
El uso del método del mismo nombre está en desuso en Django 2.0, y ya no se menciona en la documentación de Django.
Tenga en cuenta que para Django 1.10 y 1.11, el valor de la propiedad es
CallableBool
ay no booleano, lo que puede causar algunos errores extraños. Por ejemplo, tuve una vista que devolvió JSONque después de actualizar a la propiedad
request.user.is_authenticated
estaba lanzando la excepciónTypeError: Object of type 'CallableBool' is not JSON serializable
. La solución fue usar JsonResponse, que podría manejar el objeto CallableBool correctamente al serializar:fuente
request.user
. Si un usuario ha iniciado sesión o no solo importa en el contexto de la solicitud, por ejemplo, la sesión del navegador.El siguiente bloque debería funcionar:
fuente
En tu opinión:
En sus funciones de controlador agregue decorador:
fuente
request.user.is_authenticated
si sabe que su aplicación siempre cerrará la sesión del usuarioSi desea buscar usuarios autenticados en su plantilla, entonces:
fuente
Para las versiones de Django 2.0+ use:
Para obtener más información, visite https://www.django-rest-framework.org/api-guide/requests/#auth
request.user.is_authenticated () se ha eliminado en las versiones Django 2.0+.
fuente
request.user.is_authenticated
aun es válido. Se hace referencia a la documentación de Django-resto-marco no Django