2016-11-09 98 views
0

我是odoo 9 comunity中的新成員。我在我的自定義模塊中創建了許多繼承sale.order.line的模塊,並且我希望爲該many2one字段設置默認值,其中fto調用funscion的條件是產品與材料清單。有什麼步驟來達到這個目的?感謝你的時代。如何設置many2one字段的默認值?

回答

0

拿這個例子來說吧,我在這裏採取的產品屬於sale.order中選擇的一個倉庫,並將其返回product_idsale.order.line

obj_location = self.pool.get('stock.warehouse').browse(cr, uid, warehouse_id, context=context).lot_stock_id.id 
obj_inventory = self.pool.get('stock.quant').search(cr, uid, [('location_id', '=', obj_location)]) 
product_ids = [] 
products_qty = [] 
    for obj in obj_inventory: 
      obj_products_id = self.pool.get('stock.quant').browse(cr, uid, obj) 
      product_ids.append(obj_products_id.product_id.id) 
return {'domain': {'product_id': [('id', 'in', product_ids)]}} 
+0

正如你在下面的代碼中看到的,我的目的是,當我創建一個銷售訂單,如果產品[由物料清單(BOM)創建]爲width_id字段的默認值,則會自動設置,如果產品沒有BOM,則該函數將變爲False,對不起,因爲我的英語水平低,謝謝回覆。 –

+0

你有沒有試過域名過濾器? – 111sree

+0

其實我開始學習編程,所以我不知道可能的方法來達到目的。請給我一個手,列出實現目的的步驟。謝謝你,對不起,因爲我的英文不好,我希望你能明白你的意思。 –

0

類unit_rate(models.Model):

_name = "sale.order.line.width" 

name = fields.Char(u'Tên', required=True) 
rate = fields.Float(u'Hệ số', required=True, default=1) 
unit_id = fields.Many2one('product.uom', string=u'Đơn vị', required=True) 
description = fields.Text(u'Chú thích') 

類SaleLine(models.Model):

_inherit = "sale.order.line" 
@api.model 
def create(self, vals): 
    if vals['rate'] < 1: 
     raise UserError(_(u'Không thể đưa vào hệ số nhỏ hơn 0')) 
    return super(unit_rate, self).create(vals) 

_inherit = "sale.order.line" 

width_id = fields.Many2one('sale.order.line.width', u'Kiểu tính')