Django 为什么我的SSL中间件行为不端?

Django 为什么我的SSL中间件行为不端?,django,django-middleware,Django,Django Middleware,我正在使用中间件强制通过HTTPS提供某些页面: class SSLRedirect: def __init__(self): self.enabled = getattr(settings, 'SSL_ENABLED') def process_view(self, request, view_func, view_args, view_kwargs): if SSL in view_kwargs: secure = view_kwargs[SSL]

我正在使用中间件强制通过HTTPS提供某些页面:

class SSLRedirect:

  def __init__(self):
    self.enabled = getattr(settings, 'SSL_ENABLED')

  def process_view(self, request, view_func, view_args, view_kwargs):

    if SSL in view_kwargs:
      secure = view_kwargs[SSL]
      del view_kwargs[SSL]
    else:
      secure = False

    if not self.enabled:
      logger.debug('SSL Disabled')
      return
...

问题是我在
settings.py中的切换似乎没有效果。如果我加载了一个我没有设置
SSL
的url,我会按照预期在日志中获得
SSL Disabled
消息。但是,如果我加载的url设置了
SSL
,但
settings.py
中的
SSL\u ENABLED
False
,则页面仍尝试通过HTTPS加载(并且失败,因为我在
/mange.py runserver
上执行此操作),并且我没有收到任何日志消息。为什么这种方法不起作用?

这不是代码的错误

在我确实想重定向的情况下,我返回:

return HttpResponsePermanentRedirect(newurl)
我的浏览器缓存了这个,所以即使在开关关闭的情况下也会发生重定向。清除浏览器缓存修复了此问题