如何从 Django 模型定义中访问用户信息?
How to access user information from Django model definition?
我需要在 model's save()
覆盖中包含当前用户信息以用于记录目的。
即时保存时我正在写日志条目。在该记录中,我还需要有当前用户。保存可以在常规视图中进行,我可以在其中访问请求,但是在管理会话中我无法访问请求。
我是不是漏掉了什么?
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)
我需要在 model's save()
覆盖中包含当前用户信息以用于记录目的。
即时保存时我正在写日志条目。在该记录中,我还需要有当前用户。保存可以在常规视图中进行,我可以在其中访问请求,但是在管理会话中我无法访问请求。
我是不是漏掉了什么?
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)