可以在django中访问模型类中的调用者主体吗?

时间:2011-04-11 06:40:35

标签: django django-models django-context

是否可以访问模型类中的用户主体?

例如,在java中,在ejb类中,总是有ejbcontext变量可用,它为您提供调用者详细信息(经过身份验证的用户)

我想知道有没有办法在django中只在模型类

显然我可以将request.user传递给模型类,但这非常麻烦。

1 个答案:

答案 0 :(得分:1)

从你的问题中不太清楚,但我猜你想要从模型实例中“自动”访问当前用户。

简短的回答是不,这是不可能的。

由于模型可以从正常的请求 - 响应流程之外进行操作(例如,来自cronjob脚本),因此用户可能甚至不存在。除此之外,请求和经过身份验证的用户是视图域(MVC控制器),而不是模型。

您将获得的最佳效果是手动将request.user传递给您想要使用它们的模型方法。您可以使用some magic来执行python执行帧和inspect模块,但显式确实比隐含更好。而且,正如我之前所说,request.user(甚至请求本身)并不总是存在。