2017-12-26 26 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

내가 원하는 것을 더 잘 이해합니다. 올바른 방법은 주요 기능인 주 모듈 두 개와 모듈을 보이지 않게 만드는 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입니다 '을 설치 했으므로 모듈이 데이터베이스에 설치되어 있음을 의미합니다.