1

我有 Django1.9 中间件类:

class MyMiddleware(object):

    def process_request(self, request):
        token = self._get_or_create_token(request)
        #request.context['token'] = token 

问题是: - 我想将令牌放在某种上下文中以通过应用程序流传递它。- 我避免将其放入请求会话中,因为它会导致额外的数据库读取/写入。

你能给我一些解决方案吗?

4

1 回答 1

2

您可以将任何属性添加到HttpRequest,因此您可以通过以下方式实现:

class MyMiddleware(object):

    def process_request(self, request):
        token = self._get_or_create_token(request)
        request.token = token

或者如果你真的想要某种context字典:

class MyMiddleware(object):

    def process_request(self, request):
        token = self._get_or_create_token(request)
        if not hasattr(request, 'context'):
            request.context = {}
        request.context['token'] = token

我有 Django1.9 中间件类。

记录,自2017 年 4 月起不再支持,因此我强烈建议更新。

于 2019-12-12T12:35:35.787 回答