2016-11-17 3 views
0

many2one 필드가 포함 된 모듈을 사용자 정의했습니다. 자, 나는 해당 필드의 기본값을 다음과 같이 지정하고 싶습니다 : [[u'bom_ids ', u'! = ', False]]. 내가 코드를 아래에 시도하지만 probeblyOdoo 9.0c의 many2one 필드에 대한 기본값을 설정하는 방법은 무엇입니까?

width_id = field.Many2one('sale.order.line.width', default ='_get_width_default') 

def _get_width_default(self, cr, uid, context=None): 
    res = self.pool.get('product.template').search(cr, uid, [(u'bom_ids', u'!=', False)], context=context) 
    return res and res[0] or False 


default = { 
'width_id' : _get_width_default, 
} 

당신이 남자가 나에게 문제가 어떻게 문제를 sovle 및 finnally 내 목적을 얻는 방법이 무엇인지를 가리 키도록 도와 주 시겠어요 작동하지 않았다. 보고 주셔서 감사합니다

답변

1
import logging 
_logger = logging.getLogger(__name__) 

def _get_width_default(self, cr, uid, context=None): 
    #REPLACE DOMAIN WITH SOMETHING RELEVANT 
    domain = [] 
    res = self.pool.get('sale.order.line.width').search(cr, uid, domain, context=context) 
    _logger.info("PREPARING DEFAULT VALUE") 
    _logger.info(res) 
    return res[0] or False 

width_id = fields.many2one('sale.order.line.width') 

_defaults = { 
    'width_id' : _get_width_default, 
} 

로깅에 관한 한 무엇이 보이나요? 위의 코드를 사용해보십시오 (v7 스타일).

Odoo9 스타일 (NEW API)

import logging 
_logger = logging.getLogger(__name__) 

def _get_width_default(self): 
    #REPLACE DOMAIN WITH SOMETHING RELEVANT 
    domain = [] 
    res = self.env['sale.order.line.width'].search(domain) 
    _logger.info("PREPARING DEFAULT VALUE") 
    _logger.info(res) 
    return res[0].id or False 

width_id = fields.many2one('sale.order.line.width',default=_get_width_default) 
+0

나를 회신 주셔서 감사합니다. 먼저 코드를 시도하고 피드백을 작성합니다. –

+0

안녕하세요. Phillip Stack, 시스템에 문제가 있습니다. .py 필드를 다시 코딩 한 후에도 변경되지 않습니다. 여전히 작동합니다. 기본 = '1'로 설정할 때와 동일합니다. 너는 어떤 생각이있어? –

+0

보기 양식을 변경해야합니까? –