2017-12-26 18 views

答えて

0

あなたが修正したいビューのモデルにこのコードを追加することができます

@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?', 
) 

そのように、あなたは、モジュールがインストールされているかどうかをあなたに示しますフィールドを持っています。

+0

提案していただきありがとうございます@forvas、XMLファイルのフィールドを変更したいのですが、あなたの提案はPYファイルにあります。あなたのコードがxmlファイルでどのように動作するかを理解していません。モジュールを変更したいのですが、そのモジュールをインストールすることはありません。私のばかげて申し訳ありません。どうすればいいのか教えてください。 – Disuan

+0

私はあなたが必要とするものをよりよく理解します。これを行う正しい方法は、主な機能を持つ2つのモジュールと主な機能を持つ2つのモジュールを作成し、それらのフィールドを非表示にするためのXMLコードを追加するだけです(コードは ' 1 ')。この二次モジュールは、あなたのメインモジュールとあなたが目にしていない(インストールされるかしない)フィールドを作成したモジュールに( '__manifest __。py'で)依存していなければなりません。 – forvas

+1

self.env []内のモデルの名前は文字列でなければなりません。引用符はありません。 –

0

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です'がインストールされています。これは モジュールがデータベースにインストールされていることを意味します。

関連する問題