У меня есть следующий метод:
def _attempt(actor):
if actor.__class__ != User:
raise TypeError
Который вызывается из вида:
self.object.attempt(self.request.user)
Как видите, метод попытки _ожидает, что актор будет иметь тип django.contrib.auth.models.User
, однако объект будет иметь тип django.utils.functional.SimpleLazyObject
. Почему это так? И что более важно, как я могу преобразоватьLazyObject
(который, по-видимому, является своего рода оболочкой для объекта User )в объект User
?
Более подробная информация о Request.user
доступна здесь :https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.user. Эта документация указывает, что request.user
должен быть объектом User
...
======Пост -edit=====
Теперь у меня есть следующий метод:
def _attempt(obj, action, actor, msg):
actor.is_authenticated()
if isinstance(actor, LazyObject):
print type(actor)
Я передаю пользователя, однако условие if
по-прежнему верно, а актер по-прежнему LazyObject
. Почему это так?