I have the following method:
def _attempt(actor):
if actor.__class__ != User:
raise TypeError
Which is called from a view:
self.object.attempt(self.request.user)
As you can see, the _attempt method expects actor to be type django.contrib.auth.models.User
, however the object appears to be of type django.utils.functional.SimpleLazyObject
. Why is this so? And more importantly, how can I convert the LazyObject
(which apparently is a kind of wrapper for a User object) into a User
object?
More info on Request.user
is available here: https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.user This documentation seems to indicate the request.user
should be a User
object...
======Post-edit=====
I've got the following method now:
def _attempt(obj, action, actor, msg):
actor.is_authenticated()
if isinstance(actor, LazyObject):
print type(actor)
I'm passing a user, however the if
condition is still true, actor is still a LazyObject
. Why is this so?
def _attempt(obj, action, actor, msg): actor.is_authenticated() if isinstance(actor, LazyObject): print type(actor)
I'm passing a user, however the if condition is still true, actor is still a LazyObject. Why is this so ? – Selfdeceit