class Model1(models.Model):
name = fields.Char(string="Name")
one_1 = fields.One2many('Model2', 'field_many', string="")
one_2 = fields.One2many('Model3', 'field_many2', string="")
one_3 = fields.One2many('Model4', 'field_many3', string="")
這些是One2many
領域稱爲模型:我需要總結field_float1
class Model2(models.Model):
field_many = fields.Many2one('Model1', string="")
field_float1 = fields.Float()
class Model3(models.Model):
field_many2 = fields.Many2one('Model1', string="")
field_float2 = fields.Float()
class Model4(models.Model):
field_many3 = fields.Many2one('Model1', string="")
field_float3 = fields.Float()
和field_float2
,並在field_float3
上顯示結果,但問題是,或者讓我困惑的是,這個總和不僅僅是同一模型中的總和。
我可以這樣做:
@api.onchange('field_float1', 'field_float2')
def _compute_amount_move_sales_current(self):
if self.field_float1 or self.field_float2:
self.field_float3 = self.field_float1 + self.field_float2
但這些都是從兩個模型,結果必須在第三個模型場反映領域,此外,這些車型都派代表參加01形式,通過3 One2many
樹視圖,或因爲它們通常被稱爲Odoo。
因此,它只是要讀取前兩個字段,但它必須在形式Model1
這將創建新的記錄。不是數據庫表。
編輯
這是一個更精確的解釋,用戶創建這些線或One2many
領域,在所有情況下,前兩個必須填寫一個新的記錄,所以我認爲可以用required=True
實現國旗在領域。 不過,我已經試過這樣:
class Model1(models.Model):
name = fields.Char(string="Name")
one_1 = fields.One2many('Model2', 'field_many', string="")
one_2 = fields.One2many('Model3', 'field_many2', string="")
one_3 = fields.One2many('Model4', 'field_many3', string="", onchange="compute_sum")
@api.onchange('one_1', 'one_2')
def compute_sum(self):
if self.one_1.field_float1 or self.one_2.field_float2:
self.one_3.field_float3 = self.one_1.field_float1 + self.one_2.field_float2
但它不工作,當我填表的field_float它需要一個說:
ValueError
Expected singleton: Model4()
爲進一步說明,該模型的樣子這樣的:
class Model2(models.Model):
field_many = fields.Many2one('Model1', string="")
field_float1 = fields.Float()
field_float_ = fields.Float()
field_integer = fields.Integer()
field_char = fields.Char()
class Model3(models.Model):
field_many2 = fields.Many2one('Model1', string="")
field_float2 = fields.Float()
integer = fields.Integer()
class Model4(models.Model):
field_many3 = fields.Many2one('Model1', string="")
field_float3 = fields.Float()
chars = fields.Char()
bool = fields.Boolean()
我的意思是,有每個這些模型,這是從Model1
調用One2many
領域的多個領域,只是那些花車需要操作,而不是每一個。
並且用戶將按順序填充這些字段,按照state
的形式,按照statusbar
等順序填充。
非常感謝你,一定要嘗試做一些測試 – NeoVe
嗨,但現在所有的線是隻讀的,我的意思是,我在示例中只使用了一個字段,因爲它是一個示例,它在某種程度上就是這樣,但是此One2many上還有一些其他字段不應該計算,這就是我認爲的問題 – NeoVe
想象一下我的例如,其他兩個領域本身不應該計算,Idk如果我應該編輯我的問題,我認爲,只有在'one_3'字面上有一個字段時才解決您的問題 – NeoVe