У меня есть следующий метод:
def _attempt(actor):
if actor.__class__ != User:
raise TypeError
Что вызывается из представления:
self.object.attempt(self.request.user)
Как вы можете видеть, метод _attempt предполагает, что актер будет иметь тип 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
объект...
====== после редактирования =====
Теперь у меня есть следующий метод:
def _attempt(obj, action, actor, msg):
actor.is_authenticated()
if isinstance(actor, LazyObject):
print type(actor)
Я передаю пользователя, однако условие if
по-прежнему истинно, актер по-прежнему остается LazyObject
. Почему это так?