是否可以在Middleware中使用常规的Django模型?
我一直在寻找简单的例子,但是找不到任何关于Django框架的这些部分到中间件的可用性.我从他有限的理解中相信它们应该是.
我有中间件的问题我发现了很多关于它的问题,但在我的情况下没有任何帮助.
我使用中间件来获取current_user以在我的模型中使用以在save方法中保存修改后的用户,而无需在视图中写入此内容.
这是原始帖子,代码如下:
中间件
from threading import local
_user = local()
class CurrentUserMiddleware(object):
def process_request(self, request):
_user.value = request.user
def get_current_user():
return _user.value
Run Code Online (Sandbox Code Playgroud)
这段代码有问题,因为我收到的错误如下:
Traceback (most recent call last):
File "C:\Program Files (x86)\Python35-32\Lib\wsgiref\handlers.py", line 137, in run
self.result = application(self.environ, self.start_response)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\contrib\staticfiles\handlers.py", line 63, in __call__
return self.application(environ, start_response)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\core\handlers\wsgi.py", line 158, in __call__
self.load_middleware()
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\core\handlers\base.py", line 53, in load_middleware
mw_instance = mw_class()
TypeError: 'module' object is not callable
[20/Jul/2016 10:51:44] "GET /panel/ HTTP/1.1" 500 …Run Code Online (Sandbox Code Playgroud) 我想在用户登录我的网站后执行一项或多项功能。这怎么可能?我研究了中间件。Djangobook 说我需要它来对 Django 处理的每个请求运行一段代码。但是,我只需要在身份验证成功时运行代码。
注意:我使用 Django Allauth 进行身份验证,但我没有自己的任何视图来登录用户。
django django-middleware django-signals django-authentication django-allauth
什么是最常用的Django自定义中间件的实时示例?如果代码片段也是共享的话会很棒.