我正在尝试打电话request.session.get('items', {})
来自自定义 util 函数util.py.
但在该文件中,request对象不可访问,我可以从views.py 传递请求对象,但我不想这样做。有没有办法在自定义函数(而不是视图/模板)中使用请求对象。
我尝试过从以下位置导入django.http import HttpRequest
但这个类没有任何会话变量。 django 初学者,感谢任何帮助,谢谢。
util.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
有一个选项允许您使用此包来做到这一点:django-threadlocals https://github.com/benrobster/django-threadlocals。您应该看一下他们的代码,看看它是如何工作的。
Like so:
from threadlocals.threadlocals import get_current_session
def processData(data=None):
session = get_current_session()
# Do your stuff here
如果您尝试遵循此方法,请确保您了解什么django-threadlocals
做。创建它是因为万一我们想在更深的层使用请求对象的一些数据,并且您不希望通过每个闭包层传递请求对象。
这个问题 https://stackoverflow.com/questions/3227180/why-is-using-thread-locals-in-django-bad也关心我们是否应该使用它,但是答案描述了我们应该使用它的所有原因,所以请看一下。
希望有帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)