2017-06-16 14 views

答えて

1

簡単な方法で答えるには、どちらもodooで同じです。あなたがodoo/exception.pyをチェックインした場合、refer odoo exception here

これは明らかにWarningとしてUserErrorを参照していることを理解しています。 odooの警告はodoo v9とv10ではPythonの組み込み関数とのあいまいさや衝突のために推奨されていません。

pythonの警告に関する情報を入手するにはpython warning documentationを参照してください。

警告の代わりにodoo.exceptions.UserErrorを使用することをお勧めします。

1

で警告とUserErrorの違いは何ですか。それは、それがOdoo上で処理されるまで呼び出しスタックを伝搬します。 Webクライアントによって行われた呼び出しに応答するRPCレイヤーはすべての例外をキャッチし、例外クラスに応じて、Webクライアント上で異なる可能性のある動作をトリガーします。

UserErrorは、odoo.exceptionsクラスで定義されているユーザーインターフェイスにエラーメッセージを表示します。レシピのコードは、OSErrorUserErrorを変更して、メッセージが友好的に表示されるようにします。いずれの場合も、現在のデータベーストランザクションはロールバックされます。 Odoo 9と10では、UserErrorを使用してエラーメッセージを表示します。

警告:Odoo 8 openerp.exception.Warningで9と10にUserErrorの役割を果たした名前は欺瞞だったので、その非推奨(それはエラー警告ではありません)、それは組み込みの警告のpythonと衝突クラスは、それが下位互換性のために維持され、我々はそれが唯一のユーザーとロールバックしませんトランザクションに警告メッセージを示し、その意味警告を返しながら、あなたはあなたのケースでodoo 9でUserErrorと10

を使用する必要があります。

関連する問題