2016-02-13 70 views
0

为了记录的目的,我需要将model's save()中的当前用户信息覆盖。如何从Django模型定义访问用户信息?

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

我错过了什么吗?

回答

0

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

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

一旦成立,它可以被称为是这样的:

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) 
+1

Downvote,真的吗? ¯\ _(ツ)_ /¯ –

+0

这是一个有趣的简单而有用的图书馆。非常感谢指针... –