2011-11-16 3 views
5

私はdjangoモデルオブジェクトを更新しています。 obj.save()を呼び出すと、属性ごとに値を設定した後、それは私にOperationalError: (2006, 'MySQL server has gone away')を与えます。私は次のエラーの原因を知りたいと思っています。どのように私はクエリを得ることができますか?上記のエラーのために保存メソッドが失敗した場合、クエリはログに記録されません。 提案がありますか?前もって感謝します。djangoで.save()のクエリを取得するにはどうすればよいですか?

+0

[ジャンゴツールバー](https://github.com/robhudson/django-debug-toolbar) – danihp

答えて

9

あなたはそれが()(.SAVE含む)ジャンゴによって実行されたすべてのクエリのあなたのリストが表示されます

from django.db import connection 
connection.queries 

を試すことができます。あなたが行うことができますあなたのクエリを取得するには、

try: 
    modelObj.save() 
except OperationalError: 
    from django.db import connection 
    print connection.queries[-1] 
+2

は、クエリを表示するにはTrueにsettings.DEBUGを設定することを忘れないでください。 – dbf