2016-11-17 11 views
0

私はmany2oneフィールドを含むモジュールをカスタマイズしました。今、私はcoditionが[[u'bom_ids '、u'!= '、False]]でそのフィールドのデフォルト値を設定したいと思います。私は、コードの下に試してみましたが、あなたは男の問題とどのように問題をsovleとfinnally私の目的を得ることであるものを指すように私を助けてもらえ、それはprobeblyOdoo 9.0cのmany2oneフィールドにdefaut値を設定するにはどうすればよいですか?

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, 
} 

を動作しませんでした。ありがとうございました

答えて

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

私を返信していただきありがとうございます。私はthrコードを最初に試してみましょう、私がréultを取得する限り、フィードバックを書いてください –

+0

こんにちはMr Phillip Stack、多分私のシステムは何か間違っています、私は.pyフィールドをコード化した後も何も変わらない、同じように私はデフォルト= '1'を設定します。何か考えていますか? –

+0

ビューフォームを変更する必要がありますか? –

関連する問題