在 Django 中 request.user 与 get_user(request) 之间的区别?



我注意到有两种方法可以从请求中获取用户对象(假设用户已经登录并且会话有效):

  • user = request.user
  • user = get_user(request)django.contrib.auth导入get_user()

有什么区别?get_user()似乎对请求会话进行了大量验证。

哪个更好?

request.user实际上填充了get_user(request)

它发生在AuthenticationMiddleware

request.user = SimpleLazyObject(lambda: get_user(request))

所以当你得到request.user,你实际上得到了get_user(request)结果。

最新更新