diff --git a/demo/demo.py b/demo/demo.py index bed7413..2b38192 100644 --- a/demo/demo.py +++ b/demo/demo.py @@ -102,7 +102,7 @@ def make_app(): settings['mako.directories'] = __name__ + ':templates' settings['mako.module_directory'] = __name__ + ':mako_modules' settings['debugtoolbar.reload_templates'] = True - settings['debugtoolbar.hosts'] = ['127.0.0.1'] + settings['debugtoolbar.hosts'] = ['::1', '127.0.0.1'] settings['debugtoolbar.intercept_redirects'] = True settings['debugtoolbar.exclude_prefixes'] = ['/static', '/favicon.ico'] @@ -139,6 +139,5 @@ def make_app(): app = make_app() if __name__ == '__main__': - from wsgiref.simple_server import make_server - httpd = make_server('', 8080, app) - httpd.serve_forever() + from waitress import serve + serve(app, listen='localhost:8080') diff --git a/demo/setup.py b/demo/setup.py index 864e8c4..c6bba07 100644 --- a/demo/setup.py +++ b/demo/setup.py @@ -31,6 +31,7 @@ 'pyramid_chameleon', 'selenium', 'SQLAlchemy', + 'waitress', ] setup(name='debugtoolbar_demo', diff --git a/src/pyramid_debugtoolbar/toolbar.py b/src/pyramid_debugtoolbar/toolbar.py index 156168d..58b9d0e 100644 --- a/src/pyramid_debugtoolbar/toolbar.py +++ b/src/pyramid_debugtoolbar/toolbar.py @@ -266,7 +266,6 @@ def toolbar_tween(request): request, panel_classes, global_panel_classes, default_active_panels ) request.debug_toolbar = toolbar - request_history.put(request.pdtb_id, toolbar) _handler = handler for panel in toolbar.panels: @@ -350,6 +349,11 @@ def toolbar_tween(request): return response finally: + # do not add the request until it is complete, some panels + # do not properly support rendering while the request is still + # processing + request_history.put(request.pdtb_id, toolbar) + # break circref del request.debug_toolbar