我有一个全局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
答案 0 :(得分:3)
我认为中间件将是更好的解决方案。检查此项目以获得想法django-cuser。
顺便说一句。检查堆栈以获取请求是如何滥用python并仍然解决问题的绝佳示例:)