小编Rai*_*Cat的帖子

ContentNotRenderedError:响应内容必须先渲染才能访问(Django 中间件)

我正在创建 Django 中间件,用于在用户被限制超过 5 次时阻止用户,但我得到了ContentNotRenderedError.

完整错误消息:

Traceback (most recent call last):
  File "/home/raptor/Application/utilities/anaconda3/envs/slic4rapi/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/home/raptor/Application/utilities/anaconda3/envs/slic4rapi/lib/python3.8/site-packages/django/utils/deprecation.py", line 119, in __call__
    response = self.process_response(request, response)
  File "/home/raptor/Application/utilities/anaconda3/envs/slic4rapi/lib/python3.8/site-packages/django/middleware/common.py", line 113, in process_response
    response.headers['Content-Length'] = str(len(response.content))
  File "/home/raptor/Application/utilities/anaconda3/envs/slic4rapi/lib/python3.8/site-packages/django/template/response.py", line 126, in content
    raise ContentNotRenderedError(
django.template.response.ContentNotRenderedError: The response content must be rendered before it can be accessed.
[22/Mar/2022 11:55:03] "GET /api/v1/userdetail/ HTTP/1.1" 500 84321

Run Code Online (Sandbox Code Playgroud)

中间件类

class BlockMiddleware:
    
    def __init__(self, get_response):
        self.get_response = get_response
        # some other …
Run Code Online (Sandbox Code Playgroud)

django django-middleware django-rest-framework

3
推荐指数
1
解决办法
7234
查看次数