获取Django用户名以记录信号
我正在尝试登录Django。我想记录每次用户保存或修改数据的情况。在我的信号处理程序代码中,我有如下内容:获取Django用户名以记录信号,django,logging,signals,Django,Logging,Signals,我正在尝试登录Django。我想记录每次用户保存或修改数据的情况。在我的信号处理程序代码中,我有如下内容: @receiver(post_save) def post_save_callback(sender, instance, created, raw, using, update_fields, **kwargs): logger.info( 'Post-save called for %s. Created? %r. update_fields: %s', sender,
@receiver(post_save)
def post_save_callback(sender, instance, created, raw, using, update_fields, **kwargs):
logger.info(
'Post-save called for %s. Created? %r. update_fields: %s',
sender, created, json.dumps(update_fields)
)
我还想记录执行数据操作的用户的用户名,基本上是当前登录的用户。如何获取此用户名?如文档中所述,当许多代码可能对同一事件感兴趣时,信号非常有用 是这样吗
如果在管理面板中执行数据操作,可以考虑重写<代码> LogyRechange < /C> >方法>代码> ModelAdmin >代码>对象,您可以使用<代码>请求。用户。用户名<代码>获取当前登录用户的用户名。
def log_change(self, request, object, message):
logger.info('User %s changed user data %s. %s' %
(request.user.username, object, message)
super(MyClass, self).log_change(request, object, message)
请记住,ModelAdmin已经在管理日志中记录了更改,当许多代码可能对同一事件感兴趣时,文档中描述的文档信号非常有用 是这样吗
如果在管理面板中执行数据操作,可以考虑重写<代码> LogyRechange < /C> >方法>代码> ModelAdmin >代码>对象,您可以使用<代码>请求。用户。用户名<代码>获取当前登录用户的用户名。
def log_change(self, request, object, message):
logger.info('User %s changed user data %s. %s' %
(request.user.username, object, message)
super(MyClass, self).log_change(request, object, message)
请记住,ModelAdmin已经在管理日志中记录了更改,文档无法完成。当前用户只能通过使用
post\u save
时不可用的请求使用。
要实现您想要的目标,您可以执行以下操作之一:
不行。当前用户只能通过使用
post\u save
时不可用的请求使用。
要实现您想要的目标,您可以执行以下操作之一:
我对记录对数据的所有更改感兴趣,无论是通过管理面板还是通过web表单或REST。因此,我认为使用信号是一种方法,对吗?我对记录数据的所有更改感兴趣,无论是通过管理面板还是通过web表单或REST。所以我认为使用信号是一种方式,对吗?