こんにちはStackOverflowの人まで無視コマンド、どのようにデバッグするには:内部エラー現在のトランザクションが中止され、トランザクションブロックの終了
私はGeoDjangoと私の最初のステップを行うと、私は障害のあるSQL文を確認するためのより良い選択肢を探しています。
これまでのところ、私はpostgresqlテーブルのlng + latポイントを安全にしたかっただけです。
モデルを使用して定義されています。私の見解では
geolocation = models.PointField(_('Geo Location'),
geography=True,
null = True,
blank = True,
help_text=_('Geolocation with Longitude and Latitude'))
objects = models.GeoManager()
、私は、次のコマンド
savedProject.geolocation = GEOSGeometry('POINT(%s %s)' %(u_lng,u_lat))
を実行しようとするが、私は、フォームを保存しようとすると、私は次のエラーが表示されます
例外タイプ:InternalError 例外値:現在のトランザクションはです。が中断され、トランザクションブロックの終了までコマンドが無視される
このエラーの原因は何ですか?私は、SQLステートメントに何か間違っている可能性があると信じていますが、何が最良の方法を確認するのですか? Djangoは一般的なエラーメッセージ "Internal Error"を提供します。
はあなたの助けと提案をありがとう!
推奨されるSQLロギング設定では、私のためのイオンコンソールロギング。私はDEBUG = Trueを持っているので、実際にSQLを見るために他に何をしようとしているのか分かりません。 .extra()呼び出しでエラーが発生しました。私はどこでタイプミスがあったのですか。それに気付くまでに数時間かかりました。私が生成していたSQLを見ることができたのであれば、ケーキだったでしょうか。私の問題は修正されましたが、Djangoは何の助けもないと確信していました。 – gdonald
"ほとんどの場合、これは前のSQL文が実行に失敗したことを意味するため、あなたの答えに+1を与えています。"私の問題はまさにそのケースでした。スタックトレースはオブジェクトの保存に失敗したことを示していましたが、実際はその上にあるクエリでした。私の経験では、Djangoのスタックトレースはほとんどの場合役に立ちません。 – gdonald
私は "**すべての追加の**コンソールロギングを提供していません"という心配です。だから私はこのLOGGING設定をテストする簡単な方法を含める答えを更新しました。これは、あなたのプロジェクト(設定?)または環境が表示されているかどうかを知ることができます。 – jpic