是否可以访问模型类中的用户主体?
例如,在java中,在ejb类中,总是有ejbcontext变量可用,它为您提供调用者详细信息(经过身份验证的用户)
我想知道有没有办法在django中只在模型类中?
显然我可以将request.user传递给模型类,但这非常麻烦。
答案 0 :(得分:1)
从你的问题中不太清楚,但我猜你想要从模型实例中“自动”访问当前用户。
简短的回答是不,这是不可能的。
由于模型可以从正常的请求 - 响应流程之外进行操作(例如,来自cronjob脚本),因此用户可能甚至不存在。除此之外,请求和经过身份验证的用户是视图域(MVC控制器),而不是模型。
您将获得的最佳效果是手动将request.user传递给您想要使用它们的模型方法。您可以使用some magic来执行python执行帧和inspect
模块,但显式确实比隐含更好。而且,正如我之前所说,request.user(甚至请求本身)并不总是存在。