我有一個sale.order.line
模型的窗體視圖,並創建了一個名爲' niu '
的字段(序列字段),該字段自動增加其值。爲什麼在Odoo中保存字段的順序會改變?
對於每種產品類型的可供貨狀態,您都可以添加到可正常工作的表單中但是我遇到問題,因爲當您添加產品堆疊時,值會增加,但是當我按下「保存」按鈕時,會自動更改序列。
見下面附圖片:
這是模型中的 '牛' 字段和sale.order.line方法:
niu = fields.Char(string="NIU", compute="_niu_validation", readonly=True, store=True)
@api.depends('product_id.product_tmpl_id.type')
def _niu_validation(self):
for rec in self:
if rec.product_id.product_tmpl_id.type == 'product' and not rec.niu:
rec.niu = self.env['ir.sequence'].next_by_code('sale.order.line')
我能做些什麼來使序列沒有改變,並且初始數字是establis hed?
你好,關於段落:你可以刪除方法_niu_validation,覆蓋sale.order.line的方法create,並且當你的行被存儲時計算field的值。但在這種情況下,用戶將不會在「即時」欄中看到新的值。 如何使創建方法在存儲時計算字段的值? 我改寫由該方法_niu_validation創建(個體) @ api.model DEF創建(個體): \t \t用於記錄在自: \t \t \t如果rec.product_id.product_tmpl_id.type == '產物'而不是rec.niu: \t \t \t \t rec.niu = self.env ['ir.sequence']。next_by_code('sale.order.line') – beriliox
在你的模型中:'niu = fields.Char(string = 「NIU」,readonly = True)@ api.model def create(self,vals):vals [u'niu'] = #write here any logic ... return super(NameYourClass,self).create(vals)' –
在米y模型我把以下內容,但是當我按下保存按鈕時不創建序列。爲什麼會發生? @ api.model DEF創建(個體,瓦爾斯): 用於REC在自: 如果rec.product_id.product_tmpl_id.type == '產品' 和不rec.niu: 瓦爾斯[u'niu'] = self.env ['ir.sequence']。next_by_code('sale.order.line') return super(SaleOrderLine,self).create(vals) – beriliox