可以访问模型类中的用户主体吗?
例如,在 java 中,在 ejb 类中,始终有可用的 ejbcontext 变量为您提供调用者详细信息(经过身份验证的用户)
我想知道有什么方法可以在模型类中的 django 中得到这个吗?
显然我可以将 request.user 传递给模型类,但这很麻烦。
可以访问模型类中的用户主体吗?
例如,在 java 中,在 ejb 类中,始终有可用的 ejbcontext 变量为您提供调用者详细信息(经过身份验证的用户)
我想知道有什么方法可以在模型类中的 django 中得到这个吗?
显然我可以将 request.user 传递给模型类,但这很麻烦。
您的问题并不太清楚,但我猜您希望从模型实例“自动”访问当前用户。
简短的回答是否定的,这是不可能的。
由于模型可以从正常的请求-响应流之外(例如,从 cronjob 脚本)进行操作,因此用户甚至可能不存在。除此之外,请求和经过身份验证的用户是视图域(MVC 控制器),而不是模型。
您将获得的最好的方法是将 request.user 手动传递给您想要使用它们的模型方法。您可以使用 python 执行框架和模块来做一些魔术inspect
,但显式确实比隐式好得多。而且,就像我之前说的,request.user(甚至 request 本身)并不总是存在。