【问题标题】:Django 'dict' object has no attribute 'set_cookie'Django 'dict' 对象没有属性 'set_cookie'
【发布时间】:2018-02-14 10:25:10
【问题描述】:

浏览器发送 OPTIONS 请求,我收到这个奇怪的错误。有什么可能是错的?在 django 1.10 和 1.11 上测试

ERROR Internal Server Error: /cc_login/
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
    response = self._get_response(request)
  File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.5/dist-packages/django/utils/decorators.py", line 167, in _wrapped_view
    return middleware.process_response(request, response)
  File "/usr/local/lib/python3.5/dist-packages/django/middleware/csrf.py", line 328, in process_response
    self._set_token(request, response)
  File "/usr/local/lib/python3.5/dist-packages/django/middleware/csrf.py", line 192, in _set_token
    response.set_cookie(
AttributeError: 'dict' object has no attribute 'set_cookie'
[06/Sep/2017 10:50:45] "OPTIONS /cc_login/ HTTP/1.1" 500 12601

``` 根据要求:

MIDDLEWARE_CLASSES = (
    'cluster.templatetags.ranges.RangeMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'cluster.templatetags.middleware.LastSeenMiddleware',
    'django.middleware.gzip.GZipMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

```

【问题讨论】:

  • 发布导致此错误的代码。
  • settings.py 中的 MIDDLEWARE_CLASSES 是什么?某些东西可能正在破坏您的响应对象...
  • 我不确定我是否真的在我的代码中做了任何事情。设置除外。
  • 作为responce 传递的对象是{'next': None, 'text': 'ok'}
  • 您也可以从视图中发布代码吗?你在使用任何装饰器吗?

标签: django


【解决方案1】:

我认为 request 仍在 django 中,但它到达了无法处理 OPTIONS 的请求处理程序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2017-03-30
    • 2012-01-12
    • 2021-03-08
    相关资源
    最近更新 更多