W większości przypadków oznacza to, że poprzedni Wykonanie instrukcji SQL nie powiodło się. W takim przypadku powinieneś:
-
Włącz SQL logowanie , zobacz poniższy fragment do wklejenia w settings.py
-
Ustaw DEBUG=1 lub SQL nie zostanie zarejestrowany
-
Uruchom ponownie serwer runserver i powinieneś zobaczyć wszystkie zapytania SQL w konsoli
-
Wykonaj ostatnie zapytania SQL bezpośrednio w swojej bazie danych , powinieneś następnie sprawdzić, które zapytania nie powiodły się, a następnie powinieneś być w stanie je debugować - lub otworzyć nowe pytanie, które jest specyficzne dla zapytania, które powoduje problem. Możesz użyć phpMyAdmina lub bezpośrednio klienta CLI, lub dowolnego klienta bazy danych, aby wykonać zapytania SQL jeden po drugim, aż znajdziesz ten, który potrzebuje trochę miłości.
Konfiguracja rejestrowania SQL:
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'simple': {
'format': '%(levelname)s %(message)s',
},
},
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'simple'
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': 'DEBUG',
},
}
}
Jeśli ta konfiguracja nie zapewnia żadnych dodatkowych danych wyjściowych konsoli z runserver
, a następnie wypróbuj przykład test_project z django-autocomplete-light :
-
Przeczytaj i wklej polecenia instalacji w
/tmp
-
Zmień katalog na
autocomplete_light_env/src/django-autocomplete-light/test_project
-
Otwórz
test_project/settings.py
, zastąpLOGGING
konfiguracja według powyższego -
Uruchom serwer i otwórz przeglądarkę
Twoja konsola będzie wyglądać tak:
Validating models...
0 errors found
Django version 1.4.1, using settings 'test_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
DEBUG (0.001) SELECT "django_content_type"."id", "django_content_type"."name", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."model" = taggable AND "django_content_type"."app_label" = charfield_autocomplete ); args=('taggable', 'charfield_autocomplete')
DEBUG (0.000)
SELECT DISTINCT "tagging_tag".id, "tagging_tag".name
FROM
"tagging_tag"
INNER JOIN "tagging_taggeditem"
ON "tagging_tag".id = "tagging_taggeditem".tag_id
INNER JOIN "charfield_autocomplete_taggable"
ON "tagging_taggeditem".object_id = "charfield_autocomplete_taggable"."id"
WHERE "tagging_taggeditem".content_type_id = 11
GROUP BY "tagging_tag".id, "tagging_tag".name
ORDER BY "tagging_tag".name ASC; args=[]