web-dev-qa-db-fra.com

django-debug-toolbar se brisant sur l'administrateur tout en obtenant des statistiques SQL

Environnement: La barre d’outils de débogage de Django se brise lorsqu’elle utilise pour obtenir des statistiques SQL. Sinon, elle fonctionne correctement sur les autres pages et ne fonctionne que pour les pages contenant des requêtes 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)
26
Patlola Praveen

la dernière version de sqlparse est disponible aujourd'hui et n'est pas compatible avec Django-debug-toolbar version 1.4, Django version 1.9.

la solution consiste à forcer pip à installer sqlparse==0.1.19.

47
Patlola Praveen

la dernière version de sqlparse n'est pas compatible avec Django-debug-toolbar==1.4

Vos choix sont:

  • mettre à jour Django-debug-toolbar à 1.5
  • forcer l'installation sqlparse==0.1.19
9
Rex Salisbury

@Rex Salisbury Ce n'est pas correct.

Vous devez installer

Django-debug-toolbar==1.5
sqlparse==0.2.0

ou

Django-debug-toolbar==1.4
sqlparse==0.1.19

Testé sur Cloud9, avec Django 1.9.2

3
Tao Xu

Désolé, mais pour moi, avec Django 1.8.11, cela ne fonctionnait qu'avec:

Django-debug-toolbar==1.5
sqlparse==0.2.1
0
Matheus CAS