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

时间:2019-08-31 13:37:37

标签: python python-3.x list odoo odoo-12

enter image description here我需要添加一个按钮来执行一种将值写入到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:预期的单例:cars(1,2)”

1 个答案:

答案 0 :(得分: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

希望这对您有所帮助。

相关问题