在Django中获取request.user表单pre_save

时间:2015-09-01 12:59:10

标签: python django python-3.4

我有一个全局pre_save信号,我需要获取当前登录的用户,即request.user

我尝试过以下似乎有用但是,这看起来不错......

@receiver(pre_save)
def my_handler(sender, **kwargs):
    import inspect

    for frame_record in inspect.stack():
        if frame_record[3] == 'get_response':
            request = frame_record[0].f_locals['request']
            break
        else:
            request = None
    print(request.user) <--- correct user is given

以上是否存在任何潜在问题?有没有更好的方法来实现这一目标?

使用Python 3.4和Django 1.8.4

1 个答案:

答案 0 :(得分:3)

我认为中间件将是更好的解决方案。检查此项目以获得想法django-cuser

顺便说一句。检查堆栈以获取请求是如何滥用python并仍然解决问题的绝佳示例:)