2016-08-08 2 views
2

many2one 필드에 기본값을 설정하고 싶습니다. 하지만 에 의해 server actionon-creation에 설정하고 싶습니다. 문제는, 을 쓰는 규칙과 규정이 무엇인지 모르겠다. server action. 서버 작업에서 Many2one 필드의 기본값을 설정할 수있는 방법이 있습니까? 예를 들어 : 같은 작업은 당신이 요구 사항에 대한 자동 작업을 사용할 수 있습니다 Set default value of field depends on other field in odooodo에서 서버 조치로 기본값을 설정할 수 있습니까

나는 매우 감사 할 것 ...

답변

1

사용자 정의 코드를 통해이있다. 설정/기술/자동화/자동화 된 작업에서 생성하십시오. 이름을 지정하고 올바른 모델을 실행하고 "실행시기"를 "작성 중"으로 설정하십시오.

두 번째 탭에서 새 서버 작업을 추가하십시오. 서버 작업에 대한 간단한 코드를 다음 (가 sale.order을 위해 그리고 당신은 주어진 외부 ID를 가진 ir.config_parameter 필요) :

object.write({'client_order_ref': 'YourRef'}) 
if 'A' in object.partner_id.name: 
    object.write({'note': 'AAAAAAAAAA'}) 
else: 
    object.write({'note': env.ref('mymodule.mycool_ir_config_parameter').value}) 

예는 Odoo V8 +를 대상으로합니다.

+0

저는이 코드를'object.debit == 0 : res = self.pool.get ('account.analytic.account')이라고 쓰고 있습니다. search (cr, uid, [('name', '=' ','Internal ')], context = context) 서버 작업에서 object.write ({'account_analytic_id ': res})'하지만 아무것도하지 않습니다 .. 제발 그것에 대해 도와주세요 ... –

+0

선생님은 char field value ...'many2one' 필드 값을 어떻게 설정하는지 말해 주시겠습니까? –

+0

'env.ref()'를 사용하여 검색하거나 다른 레코드를 얻을 수 있습니다. 그 후에 레코드 ID로 many2one 필드를 설정하면됩니다. 예를 들어 (가장 좋은 예는 아님)'object.write ({ 'partner_id': env [ 'res.partner'] .search ([], limit = 1) .id})' 'sale.order' 생성의 기본 파트너 인 데이터베이스의 첫 번째 파트너. – CZoellner

관련 문제