If used with the new MIDDLEWARE setting (instead of the old MIDDLEWARE_CLASSES one) there is some scenario things don't work properly.
I'm using wagtail (a CMS open source based on django). Wagtail has a SiteMiddleware that sets a site
attribute onto the request
object containing the current site. This middleware comes after the CrequestMiddleware
.
Internal Server Error: /cms/admin/pages/39/edit/preview/
Traceback (most recent call last):
File "C:\...\Lib\site-packages\django\core\handlers\exception.py", line 41, in inner
response = get_response(request)
File "C:\...\Lib\site-packages\django\core\handlers\base.py", line 217, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\...\Lib\site-packages\django\core\handlers\base.py", line 215, in _get_response
response = response.render()
File "C:\...\Lib\site-packages\django\template\response.py", line 107, in render
self.content = self.rendered_content
File "C:\...\Lib\site-packages\django\template\response.py", line 84, in rendered_content
content = template.render(context, self._request)
File "C:\...\Lib\site-packages\django\template\backends\django.py", line 66, in render
return self.template.render(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 207, in render
return self._render(context)
File "C:\...\Lib\site-packages\django\test\utils.py", line 107, in instrumented_test_render
return self.nodelist.render(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 990, in render
bit = node.render_annotated(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 957, in render_annotated
return self.render(context)
File "C:\...\Lib\site-packages\django\template\loader_tags.py", line 177, in render
return compiled_parent._render(context)
File "C:\...\Lib\site-packages\django\test\utils.py", line 107, in instrumented_test_render
return self.nodelist.render(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 990, in render
bit = node.render_annotated(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 957, in render_annotated
return self.render(context)
File "C:\...\Lib\site-packages\django\template\loader_tags.py", line 177, in render
return compiled_parent._render(context)
File "C:\...\Lib\site-packages\django\test\utils.py", line 107, in instrumented_test_render
return self.nodelist.render(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 990, in render
bit = node.render_annotated(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 957, in render_annotated
return self.render(context)
File "C:\...\Lib\site-packages\django\template\loader_tags.py", line 72, in render
result = block.nodelist.render(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 990, in render
bit = node.render_annotated(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 957, in render_annotated
return self.render(context)
File "C:\...\Lib\site-packages\django\template\loader_tags.py", line 216, in render
return template.render(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 209, in render
return self._render(context)
File "C:\...\Lib\site-packages\django\test\utils.py", line 107, in instrumented_test_render
return self.nodelist.render(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 990, in render
bit = node.render_annotated(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 957, in render_annotated
return self.render(context)
File "C:\...\Lib\site-packages\django\template\defaulttags.py", line 166, in render
values = self.sequence.resolve(context, True)
File "C:\...\Lib\site-packages\django\template\base.py", line 708, in resolve
obj = self.var.resolve(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 849, in resolve
value = self._resolve_lookup(context)
File "C:\...\Lib\site-packages\django\template\base.py", line 890, in _resolve_lookup
current = getattr(current, bit)
File "C:\...\Lib\site-packages\django\utils\functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Users\tron\eclipse_workspace\mydjangobase\mydjangobase_HEAD\my_cms\models_base.py", line 565, in csspages_css
csspages = self.get_basepage.csspages_css
File "C:\...\Lib\site-packages\django\utils\functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Users\tron\eclipse_workspace\mydjangobase\mydjangobase_HEAD\my_cms\models_base.py", line 527, in get_basepage
return self._get_basepages[0]
File "C:\...\Lib\site-packages\django\utils\functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Users\tron\eclipse_workspace\mydjangobase\mydjangobase_HEAD\my_cms\models_base.py", line 504, in _get_basepages
basepages.append(SiteSettings.for_site(request.site).fk_basepage or BasePage())
AttributeError: 'NoneType' object has no attribute 'site'
[08/May/2017 17:31:40] "GET /cms/admin/pages/39/edit/preview/ HTTP/1.1" 500 240362