いくつかのフィールドを非表示にするためにXMLでフォームビューを継承したいと思っていますが、時にはそのモジュールをインストールしません。Odoo:モジュールがインストールされているかどうかチェックするには?
これを解決するにはどうすればよいですか?
いくつかのフィールドを非表示にするためにXMLでフォームビューを継承したいと思っていますが、時にはそのモジュールをインストールしません。Odoo:モジュールがインストールされているかどうかチェックするには?
これを解決するにはどうすればよいですか?
あなたが修正したいビューのモデルにこのコードを追加することができます
@api.depends()
def _compute_module_x_installed(self):
for record in self:
module = self.env['ir.module.module'].search([
('name', '=', 'the_module_name')
])
if module and module.state == 'installed':
record.update({
'module_x_installed': True,
})
module_x_installed = fields.Boolean(
compute='_compute_module_x_installed',
string='Is X installed?',
)
そのように、あなたは、モジュールがインストールされているかどうかをあなたに示しますフィールドを持っています。
ir_module_moduleデータベーステーブルの助けを借りて、モジュールの現在の状態を達成することもできます。名前の新しいデータベーステーブルを作成するOdoo
ir.module.moduleモデルは、我々は「結果はで取得する場合はpgAdminでツール
select state from ir_module_module where name='Your_module_name(technical_name)';
を使用してSQLクエリを通じて、当社のモジュールのステータスを検索することができますir_module_moduleです'がインストールされています。これは モジュールがデータベースにインストールされていることを意味します。
提案していただきありがとうございます@forvas、XMLファイルのフィールドを変更したいのですが、あなたの提案はPYファイルにあります。あなたのコードがxmlファイルでどのように動作するかを理解していません。モジュールを変更したいのですが、そのモジュールをインストールすることはありません。私のばかげて申し訳ありません。どうすればいいのか教えてください。 – Disuan
私はあなたが必要とするものをよりよく理解します。これを行う正しい方法は、主な機能を持つ2つのモジュールと主な機能を持つ2つのモジュールを作成し、それらのフィールドを非表示にするためのXMLコードを追加するだけです(コードは ' 1 ')。この二次モジュールは、あなたのメインモジュールとあなたが目にしていない(インストールされるかしない)フィールドを作成したモジュールに( '__manifest __。py'で)依存していなければなりません。 –
forvas
self.env []内のモデルの名前は文字列でなければなりません。引用符はありません。 –