J'ai la méthode suivante :
def _attempt(actor):
if actor.__class__ != User:
raise TypeError
Qui est appelé à partir d'une vue :
self.object.attempt(self.request.user)
Comme vous pouvez le voir, la méthode _attempt s'attend à ce que actor soit de type django.contrib.auth.models.User
Cependant, l'objet semble être de type django.utils.functional.SimpleLazyObject
. Pourquoi en est-il ainsi ? Et surtout, comment puis-je convertir le LazyObject
(qui est apparemment une sorte d'enveloppe pour un objet Utilisateur) en un objet User
objet ?
Plus d'informations sur Request.user
est disponible ici : https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.user Cette documentation semble indiquer que le request.user
devrait être un User
objet...
\======Post-edit=====
J'ai maintenant la méthode suivante :
def _attempt(obj, action, actor, msg):
actor.is_authenticated()
if isinstance(actor, LazyObject):
print type(actor)
Je passe un utilisateur, mais le if
est toujours vraie, l'acteur est toujours un LazyObject
. Pourquoi en est-il ainsi ?