我注意到有两种方法可以从请求中获取用户对象(假设用户已经登录并且 session 有效):
user = request.user
user = get_user(request)
其中get_user()
是从django.contrib.auth
导入的。
有什么区别? get_user()
似乎对请求 session 做了很多验证。
哪个更好?
最佳答案
request.user
实际上是用 get_user(request)
填充的。
发生在AuthenticationMiddleware
:
request.user = SimpleLazyObject(lambda: get_user(request))
所以当你得到 request.user
时,你实际上得到的是 get_user(request)
结果。
关于python - Django 中 request.user 与 get_user(request) 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73769092/