django-debug-toolbar在获取sql统计信息时破坏管理员
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django-debug-toolbar在获取sql统计信息时破坏管理员相关的知识,希望对你有一定的参考价值。
环境:django调试工具栏在使用时获取sql统计信息,否则它在其他页面上工作正常,只在具有sql查询的页面上打破。
Request Method: GET
Request URL: http://www.blog.local/admin/
Django Version: 1.9.7
Python Version: 2.7.6
Installed Applications:
[
....
'django.contrib.staticfiles',
'debug_toolbar']
Installed Middleware:
[
...
'debug_toolbar.middleware.DebugToolbarMiddleware']
Traceback:
File "/home/vagrant/www/dx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
235. response = middleware_method(request, response)
File "/home/vagrant/www/dx/venv/local/lib/python2.7/site-packages/debug_toolbar/middleware.py" in process_response
129. panel.generate_stats(request, response)
File "/home/vagrant/www/dx/venv/local/lib/python2.7/site-packages/debug_toolbar/panels/sql/panel.py" in generate_stats
192. query['sql'] = reformat_sql(query['sql'])
File "/home/vagrant/www/dx/venv/local/lib/python2.7/site-packages/debug_toolbar/panels/sql/utils.py" in reformat_sql
27. return swap_fields(''.join(stack.run(sql)))
File "/home/vagrant/www/dx/venv/local/lib/python2.7/site-packages/sqlparse/engine/filter_stack.py" in run
29. stream = filter_.process(stream)
Exception Type: TypeError at /admin/
Exception Value: process() takes exactly 3 arguments (2 given)
答案
sqlparse最新版本今天发布,它与django-debug-toolbar版本1.4,Django版本1.9不兼容
解决方法是强制点来安装sqlparse==0.1.19
另一答案
最新版本的sqlparse
与django-debug-toolbar==1.4
不兼容。
你的选择是:
- 将
django-debug-toolbar
升级到1.5
- 强制安装
sqlparse==0.1.19
另一答案
@Rex Salisbury那不对。
你必须安装
django-debug-toolbar==1.5
sqlparse==0.2.0
要么
django-debug-toolbar==1.4
sqlparse==0.1.19
使用django 1.9.2在Cloud9上测试
另一答案
对不起,但对我来说,使用Django 1.8.11,它只适用于此:
django-debug-toolbar==1.5
sqlparse==0.2.1
以上是关于django-debug-toolbar在获取sql统计信息时破坏管理员的主要内容,如果未能解决你的问题,请参考以下文章