如何从Django模型定义中访问用户信息?

时间:2016-02-13 06:32:46

标签: django login admin

我需要在model's save()覆盖中获取当前用户信息以进行日志记录。

即时保存时,我正在写一个日志条目。在该记录中,我还需要拥有当前用户。保存可以在常规视图中进行,我可以访问请求,但是在管理会话中我无法访问请求。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

django-cuser救援!该库添加了可以在视图,模型方法等中调用的中间件,以获取当前用户。它具有更多功能,但实质上您可以在任何模型,modelAdmin等方法中访问当前用户。

有一些方法可以访问用户in modelAdmin instances,但不是在视图和自定义管理实例中构建方法,而是坚持使用save方法。

设置完成后,可以这样调用:

from cuser.middleware import CuserMiddleware

class SomeModel(models.Model):
    def save(self, *args, **kwargs):
        user = CuserMiddleware.get_user()
        # you can now access any attributes of the current user
        super(SomeModel,self).save(*args, **kwargs)