request.user
と呼ばれる変数に割り当てprior_user
、基本的にユーザーを認証してから、かどうかを確認するという問題が発生しましたrequest.user != prior_user
。私はそれらが同じではなくprior_user
、`AnonymousUserが含まれているはずだと思っていました。驚いたことに、それらは同じでした。
サンプルコード:
prior_user = request.user # request object, obtained froma view
authenticate_user(request) # some function that authenticates
print prior_user.username != request.user.username # returns False i.e.they are the same!
次に、prior_userに実際にdjango.utils.functional.SimpleLazyObjectのインスタンスが含まれていることを発見したので、これはある種のレイジールックアップタイプのものであると思います。つまり、prior_userの値は実際に使用されるまでルックアップされません。ソースコードを見ると確認できません。
djangoの経験がある人なら誰でも、何が起こっているのか、なぜそれが必要なのかを教えてくれますか?
これは私を少し動揺させます。なぜなら、通常の代入ステートメントは私が期待するように機能せず、Django内の他の何がこのように動作するのでしょうか?また、これがドキュメントに記載されているのを見ませんでした。
それで、djangoの超人間的な知識を持っている人なら誰でもある程度の明確さを提供できますか?