En Django, ¿cómo sé cuál es el usuario que está conectado actualmente?En Django, ¿cómo sé el usuario que está conectado actualmente?
Respuesta
¿Dónde necesita conocer al usuario?
En views El usuario esta proporcionado en la solicitud como request.user
.
Porque en plantillas ven here
Si desea guardar el creador o editor de ejemplo de un modelo que puede hacer algo así como la manipulación de usuario:
model.py
class Article(models.Model):
created_by = models.ForeignKey(User, related_name='created_by')
created_on = models.DateTimeField(auto_now_add = True)
edited_by = models.ForeignKey(User, related_name='edited_by')
edited_on = models.DateTimeField(auto_now = True)
published = models.BooleanField(default=None)
admin.py
He encontrado esto en Internet, pero no sé donde más
Solo una nota, en save_formset -> set_user, debería ser si no hasattr (instancia, 'created_by') – FurtiveFelon
¿puedo obtener el usuario actual en settings.py? – Mahendra
¿Por qué harías eso? (por favor crea una nueva pregunta, mis días django se han ido) – vikingosegundo
La extensión de la respuesta de @ vikingosegundo, si desea obtener el nombre de usuario en el interior de los modelos, he encontrado una manera que implica la declaración de un middleware. Crear un archivo llamado get_username.py
dentro de su aplicación, con el siguiente contenido:
from threading import current_thread
_requests = {}
def get_username():
t = current_thread()
if t not in _requests:
return None
return _requests[t]
class RequestMiddleware(object):
def process_request(self, request):
_requests[current_thread()] = request
Editar su settings.py
y añadirlo a la MIDDLEWARE_CLASSES
:
MIDDLEWARE_CLASSES = (
...
'yourapp.get_username.RequestMiddleware',
)
Ahora, en su método save()
, se puede obtener el nombre de usuario actual de esta manera:
from get_username import get_username
...
def save(self, *args, **kwargs):
req = get_username()
print "Your username is: %s" % (req.user)
Hilo dedicado: http://stackoverflow.com/questions/10991460/django-get-current-user-in-model-save –
@nKn es el realmente dedicado MiddleWare es necesario para invocar 'get_username()' en el objeto 'Models' Si es así, sería bueno tener un enlace a un documento canónico sobre eso. ¿Hay funciones de django nativas actualizadas en 1.9.5 para hacer lo mismo? – alvas
Django 1.9.6 proyecto predeterminado tiene user
en las plantillas predeterminadas
para que pueda escribir cosas como esta directamente:
{% if user.is_authenticated %}
{{ user.username }}
{% else %}
Not logged in.
{% endif %}
Esta funcionalidad es proporcionada por el procesador django.contrib.auth.context_processors.auth
contexto en settings.py
.
Dedicado pregunta plantilla: How to access the user profile in a Django template?
- 1. Averigüe el usuario que está conectado actualmente en Django
- 2. No se puede quitar un usuario que está conectado actualmente
- 3. ¿Cómo comprobar que el usuario está "conectado"?
- 4. ¿Detecta si un usuario web está actualmente conectado a Google?
- 5. ¿Cómo obtener el ID de usuario del usuario actualmente conectado en Django?
- 6. Compruebe si ningún usuario está actualmente conectado a Windows
- 7. ¿Cómo obtener el rol del usuario actualmente conectado en wordpress?
- 8. ¿Manejar diferentes bases de datos con LINQ basado en el usuario que está conectado actualmente?
- 9. Encontrar el usuario actualmente conectado desde una extensión de Firefox
- 10. Python, obtenga ventanas carpetas especiales para el usuario actualmente conectado
- 11. Cómo verifico si el usuario está conectado en Javascript
- 12. ¿Dónde puedo ver quién está conectado actualmente en Plone?
- 13. Rails Idea: obtener objeto del usuario actualmente conectado?
- 14. ¿Cómo comprobar si el usuario está conectado a internet wp7?
- 15. ¿Cómo obtener el rol del usuario actualmente conectado en Drupal 7?
- 16. ¿Cómo puedo obtener el usuario de Windows actualmente conectado en Access VBA?
- 17. Compruebe si el usuario está actualmente en línea (en vivo)
- 18. ¿Cómo consigo la visualización de anuncios Nombre del usuario actualmente conectado
- 19. ¿Cómo puedo verificar si un socket está actualmente conectado en Java?
- 20. ¿Cómo asignar usuario actualmente conectado como valor predeterminado para un campo de modelo?
- 21. backbone.js - manejo si un usuario está conectado o no
- 22. cómo obtener los datos de usuario actualmente registrados zend framework
- 23. iphone: ¿Cómo sé que UIWebView está completamente cargado?
- 24. ¿Cómo sé que mi aplicación está desinstalada del dispositivo ...?
- 25. Obtener el nombre de usuario conectado en C#
- 26. Moodle cómo averiguar el rol del usuario conectado
- 27. Cómo obtener el correo electrónico del usuario conectado en powershell
- 28. ¿Puede el iPhone SDK obtener el Wi-Fi SSID actualmente conectado?
- 29. Ruby on Rails/Devise: Determinación en el modelo si el usuario está conectado
- 30. ¿Cómo puedo recuperar el URI TCM del usuario registrado actualmente en código JavaScript?
duplicado de su pregunta anterior? http://stackoverflow.com/questions/1476596/login-code-for-django – Abizern
@Abizem, eso no es un duplicado de esta pregunta en absoluto. –