首页 > 解决方案 > 在实用程序函数中使用 Django request.session

问题描述

我正在尝试request.session.get('items', {})从自定义 util 函数util.py 调用

但在该文件中,请求对象不可访问,我可以从 views.py 传递请求对象,但我不想这样做。有没有办法在自定义函数(不是视图/模板)中使用请求对象。

我试图从中导入,django.http import HttpRequest但这个类没有任何会话变量。django初学者,感谢任何帮助。

实用程序.py

def processData(data=None):
   ## get items form  session
   items = request.session.get('items', {})  ## error name 'request' is not defined
   # append with data
   items.update(data)
   return items 

标签: pythondjango

解决方案


你必须通过它。没有其他选择。

request不是一些通用变量,而不是您可以从其他地方导入。相反,它是一组特定于刚刚提出的特定请求的信息。它包含诸如 cookie 和当前 URL 之类的内容。

每当有人通过服务器对其发出请求时,就会生成它,这就是为什么您将其视为视图函数的参数的原因。

我想你可以把它变成某种全局变量,但这是一条荒谬的路线。


推荐阅读