Tag: django contrib

request.user返回一个SimpleLazyObject,我该如何“唤醒”它?

我有以下的方法: def _attempt(actor): if actor.__class__ != User: raise TypeError 从视图中调用: self.object.attempt(self.request.user) 正如你所看到的,_attempt方法期望actor是typesdjango.contrib.auth.models.User ,但是该对象看起来是django.utils.functional.SimpleLazyObjecttypes的。 这是为什么? 更重要的是,如何将LazyObject (显然是一种用户对象的包装)转换成一个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条件仍然是真的,actor仍然是一个LazyObject 。 这是为什么?