¿Cómo puedo obtener el nombre de usuario del usuario registrado en Django?

¿Cómo puedo obtener información sobre el usuario que ha iniciado sesión en una aplicación Django?

Por ejemplo:

Necesito saber el nombre de usuario del usuario que ha iniciado sesión para decir quién publicó una Revisión:

 

Publica tu tuit, {{ usuario.username.title }}

{% csrf_token %} {{formulario.as_p}}

En usuario.username.title recibo el nombre de usuario, pero en la plantilla, necesito obtener esa información de la vista.

Gracias. =)

Puede utilizar el objeto de solicitud para encontrar al usuario que ha iniciado sesión

 def my_view(request): username = None if request.user.is_authenticated(): username = request.user.username 

De acuerdo con https://docs.djangoproject.com/en/2.0/releases/1.10/

En la versión Django 2.0 la syntax ha cambiado a

 request.user.is_authenticated 

request.user.get_username() o request.user.username , se prefiere el primero.

Django docs dice:

Dado que el modelo de usuario se puede intercambiar, debe usar este método en lugar de hacer referencia al atributo de nombre de usuario directamente.

PS Para las plantillas, use {{ user.get_username }}

request.user ‘ ha iniciado sesión en el usuario.
request.user.username ‘ devolverá el nombre de usuario del usuario registrado.

Si está utilizando la forma antigua de escribir vistas, en la forma de vistas basadas en funciones …

En su opinión, está creando una nueva variable llamada usuario para guardar la solicitud. Probablemente el usuario

pero si regresa a la Template una context_instance , pasando el valor del Contexto de la solicitud, obtendrá el usuario registrado, simplemente accediendo a la request .

 // In your views file from django.shortcuts import render_to_response from django.template import RequestContext def your_view(request): data = { 'formulario': Formulario() # ... } return render_to_response('your_template.html', data, context_instance=RequestContext(request)) // In your template 

Publica tu tuit, {{ request.user.username.title }}

{% csrf_token %} {{ formulario.as_p }}

request.user.get_username() devolverá una cadena del correo electrónico de los usuarios.

request.user.username devolverá un método.