Я работаю над интеграцией OpenID с моим собственным стеком аутентификации для Django.Я использую python-openid, django 1.2.5 с postgresql, следуя примерам из папки djopenid в examples/
Что происходит, так это.Я использую представление, которое вызывает различные механизмы python-openid, которые полагаются на модели, которые я использовал. Где-то там что-то ломается.Моя проблема не в , почему она сломана, а в том, что я не могу сказать , что сломано.Мои модели написаны непосредственно против их комментариев реализации, но я, вероятно, допустил одну или две ошибки.
Это трассировка стека:
mod_wsgi (pid=5476): Exception occurred processing WSGI script
'/var/www/Django/Testbed/Testbed.wsgi'., referer:
http://localhost/testbed/openidlogin
Traceback (most recent call last):, referer:
http://localhost/testbed/openidlogin
File "/usr/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line
252, in __call__, referer: http://localhost/testbed/openidlogin
response = middleware_method(request, response), referer:
http://localhost/testbed/openidlogin
File
"/usr/lib/python2.7/site-packages/django/contrib/sessions/middleware.py", line
36, in process_response, referer: http://localhost/testbed/openidlogin
request.session.save(), referer: http://localhost/testbed/openidlogin
File
"/usr/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py", line
61, in save, referer: http://localhost/testbed/openidlogin
sid = transaction.savepoint(using=using), referer:
http://localhost/testbed/openidlogin
File "/usr/lib/python2.7/site-packages/django/db/transaction.py", line 229,
in savepoint, referer: http://localhost/testbed/openidlogin
connection._savepoint(sid), referer: http://localhost/testbed/openidlogin
File "/usr/lib/python2.7/site-packages/django/db/backends/__init__.py", line
56, in _savepoint, referer: http://localhost/testbed/openidlogin
self.cursor().execute(self.ops.savepoint_create_sql(sid)), referer:
http://localhost/testbed/openidlogin
File "/usr/lib/python2.7/site-packages/django/db/backends/util.py", line 15,
in execute, referer: http://localhost/testbed/openidlogin
return self.cursor.execute(sql, params), referer:
http://localhost/testbed/openidlogin
File
"/usr/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py
", line 44, in execute, referer: http://localhost/testbed/openidlogin
return self.cursor.execute(query, args), referer:
http://localhost/testbed/openidlogin
DatabaseError: current transaction is aborted, commands ignored until end of
transaction block, referer: http://localhost/testbed/openidlogin
Так что я понимаю, что django использует управление транзакциями postgresql и что где-то в этом процессе я делаю что-то , которое вызывает проблему целостности с базой данных.Но это не говорит мне, что это может быть, или где ошибка в моем коде.Я попытался отключить это в settings.py
, чтобы увидеть, приведет ли более разумная трассировка стека.Это не так.
Мой вопрос очень прост: как узнать, в чем проблема?Я могу работать в обратном направлении из-за неправильного оператора SQL (так как это скажет мне, какие модели не работают) или даже лучше - трассировка стека, включающая часть моего кода.Даже "postgresql error code XYZ" дает мне кое-что для Google.Могу ли я включить некоторые настройки, которые делают django более разговорчивым?Я использую
DEBUG = True
TEMPLATE_DEBUG = DEBUG
Очевидно, но я даже не получаю желтую страницу с ошибкой.Просто ваша старая ошибка 500 Internal Server Error и эта трассировка стека в журнале ошибок apache.Где-нибудь еще я могу посмотреть?Какой-нибудь вариант, который я могу использовать, или какой-нибудь изумительный инструмент, который я могу использовать для наблюдения за выполнением или что-то в этом роде?