私は次の方法を持っています:
def _attempt(actor):
if actor.__class__ != User:
raise TypeError
ビューから呼び出されるもの:
self.object.attempt(self.request.user)
ご覧のとおり、_attempt メソッドはアクターが typedjango.contrib.auth.models.Userであることを期待していますが、オブジェクトは type であるように見えますdjango.utils.functional.SimpleLazyObject。これはなぜですか?LazyObjectさらに重要なことに、 (どうやら User オブジェクトのラッパーのようなものです) をオブジェクトに変換するにはどうすればよいUserでしょうか?
詳細については、 httpsRequest.user : //docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.user を参照してください。このドキュメントは、オブジェクトである必要があることを示しているようです...request.userUser
======事後編集=====
私は今次の方法を持っています:
def _attempt(obj, action, actor, msg):
actor.is_authenticated()
if isinstance(actor, LazyObject):
print type(actor)
ユーザーを渡していますが、if条件はまだ true であり、アクターはまだLazyObject. これはなぜですか?