2013-03-03 3 views
5

は私のDjangoプロジェクトで開発している間、私は言うDatabaseErrorを取得しています:Django - DjangoのエラーページでDatabaseErrorのデバッグ情報を取得するには、「現在のトランザクションは中止されましたか?

現在のトランザクションは中止され

、 トランザクションブロックの終わりまで無視コマンド

私はそこにあったので、これが起こる知っていますロールバックのない悪いPostgreSQLトランザクションとこの悪いトランザクションのエラーはPostgreSQLエラーログにあります。しかし、このエラーがDjangoのエラーページに表示されると、もっと便利になると思います。次に、問題点を直接確認することができます。

したがって、これらのPostgreSQLエラーをDjangoのエラーページで取得できますか?そしてもしそうなら、どうですか?

+1

djangoデバッグツールバーを見ましたか? - https://github.com/robhudson/django-debug-toolbar/commits/master/ –

+0

調査をしましたか?何か試しましたか? Djangoのドキュメントをチェックしましたか?あなたの努力を示してください。 –

+0

@BelowtheRadarはい。この質問は1年ほど前で、既に回答されていることをご存知ですか? – rednaw

答えて

2

例外の詳細を知りたい場合は、ラップビュー処理にカスタムmiddleware classを書き込んで、未処理のdjango.db.DatabaseErrorをキャッチして、開発サーバーのデバッグセッションで例外を調べることができますコンソール:

from django.db import DatabaseError 

class DatabaseErrorMiddleware(object): 
    def process_view(self, request, view, args, kwargs): 
     try: 
      view(request, *args, **kwargs) 
     except DatabaseError as err: 
      import pdb; pdb.set_trace() 
      # You can now fully inspect the `e` exception object and it's context 

は、これらの例外は良性であり、通常、スレッドの要求応答フローが途中で終了するたびにそれがすべてではないかもしれませんが、アプリケーションが、レスポンスを返すことができる前に、あなたのクライアントが接続を中止した場合、開発時にかなり頻繁に発生それの。

関連する問題