如何将值添加到 odoo many2many 字段列取决于同一字段中的另一列?

how to add values into odoo many2many field column depend on another column in the same field?

我需要添加一个按钮来执行将值写入 many2many 特定列的方法

注意 该值等于产品表单中的另一列值 * self.standard_price

我试图使列表包含我需要准确写入的值,但我无法将这些值写入特定列

class autopart(models.Model):
_inherit = 'product.template'

@api.one
@api.depends('car')
def test(self):
    test=[s.factor* self.standard_price for s in self.car]
    print(test)
    self.car.suggested_price = [(6,0,[test])]
    pass


car = fields.Many2many(comodel_name="cars", string="", )

XML

  <record id="product_auto" model="ir.ui.view">
      <field name="name">product.template.product.form</field>
      <field name="model">product.template</field>
      <field name="inherit_id" ref="product.product_template_only_form_view"/>
      <field name="arch" type="xml">
          <field name="qty_available" t-esc="'%.0f'%o.qty_available"/>
          <xpath expr="//page[@name='inventory']" position="after">
              <page name="pricing" string="Pricing" groups="master.auto_manger">
                  <group>

                      <field name="car">
                          <tree>
                              <field name="name"/>
                              <field name="model" widget="many2many_tags"/>
                              <field name="year"/>
                              <field name="factor"/>
                              <field name="suggested_price"/>
                          </tree>
                      </field>
                  </group>
                  <group>
                      <button name="test" class="oe_highlight" type="object" string="set values"/>
                  </group>

              </page>
          </xpath>
      </field>
  </record>

当我按下按钮时出现这个错误 “ ValueError:预期单例:汽车(1、2)”

此错误表示 Car 有多个记录集。

您必须使用 for loop 来更新 suggested_price 字段的值。请尝试以下代码:

@api.one
@api.depends('car')
def test(self):
    for c in self.car:
        c.suggested_price = c.factor* self.standard_price

这将遍历每条记录并更新汽车模型中每条记录的suggested_price

希望对您有所帮助。