2016-07-20 26 views
25

Środowisko: łamanie paska narzędzi debugowania django podczas uzyskiwania statystyk sql else działa poprawnie na innych stronach, zerwanie tylko na stronach, które mają kwerendy sql.django-debug-toolbar zerwanie z adminem podczas pobierania statystyk 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) 
+0

Używamy autom Wdrożony system VM z wykorzystaniem Vagrant i niespodziewanie pojawił się około godziny temu. Nawet stara wersja z git nie działa już ze świeżymi maszynami wirtualnymi. Jestem zdumiony. Nic w Internecie na temat tego błędu i właśnie teraz to się pojawia. –

+0

@IvailoKaramanolev wymuś pip, aby zainstalować 'sqlparse == 0.1.19' –

Odpowiedz

47

sqlparse najnowsza wersja została wydana dzisiaj i to nie jest kompatybilny z django-debug-Toolbar w wersji 1.4, wersja Django 1.9

obejście jest siła pip zainstalować sqlparse==0.1.19

+0

Dzięki. To wydaje się działać. –

+2

Czy możesz wskazać wersję, z którą pracujesz? Po prostu skonfigurowałem 'django-debug-toolbar == 1.5' (załadowane na pypi 2016-07-21) kilka dni temu i wyraźnie wymieniło' sqlparse> = 0.2.0' jako zależność i działa dobrze dla siebie i dla innych członek mojego zespołu. Jeśli ktoś zastosuje się do tego zalecenia z django-debug-toolbar == 1.5, wygeneruje ten sam błąd. Odwiedzający mogą z łatwością tęsknić za opublikowanymi na ten dzień przed wydaniem wersji 1.5. – Jmills

+0

@The CardCheat Jest to dla django-debug-toolbar wersji 1.4, myślę, że zostały wydane, gdy to było zerwanie, opublikowałem to zaraz po wydaniu sqlparse. –

9

najnowsza wersja sqlparse jest niezgodny z django-debug-toolbar==1.4.

Twoje wybory są:

  • uaktualnienie django-debug-toolbar do 1.5
  • siła zainstalować sqlparse==0.1.19
+0

pracował dla mnie używając Django <1.8 – miraculixx

+0

uaktualnienie paska narzędzi Django-debug do wersji 1.5 automatycznie uaktualnił mój django-1.7.1, więc komentarz @mikulikx nie jest prawidłowy dla mnie – PeterVermont

+0

możesz 'zainstalować plik django-debug-toolbar == 1.5 Django == 1.7.1' jeśli chcesz trzymać się tej konkretnej wersji django. Lub użyj 'pip install django-debug-toolbar == 1.5" Django <1.8 "', aby pozostać poniżej 1.8. – miraculixx

3

@Rex Salisbury To nie jest poprawne.

Musisz zainstalować

django-debug-toolbar==1.5 
sqlparse==0.2.0 

lub

django-debug-toolbar==1.4 
sqlparse==0.1.19 

testowany na Cloud9, z Django 1.9.2

0

Przepraszamy, ale dla mnie, z Django 1.8.11, to tylko pracował z tym:

django-debug-toolbar==1.5 
sqlparse==0.2.1