在Odoo 11中向按钮添加功能

时间:2019-02-23 16:32:51

标签: button odoo

我要创建一个按钮,以删除游戏中的当前玩家。 这些是我在models.py

中的课程
class pista(models.Model):

 _name = 'bowling_module.pista'
 id_pista =  fields.Integer(string="Número pista",  required = True)
 estado = fields.Selection([('0','Desuso'),('1','Jugando'),('2','Mantenimiento')],string = "Estado de la pista")
 descripcion = fields.Text(string = "Notas de la pista")
 jugador = fields.One2many('bowling_module.jugador', 'pista', required = True)
 _sql_constraints = [
     ('PK_NM', 'unique (id_pista)','Ese id ya existe')]


class jugador(models.Model):
_name = 'bowling_module.jugador'
pista = fields.Many2one('bowling_module.pista', 'id_pista', required = True)
nombre = fields.Char(string = "Nombre de cliente", required = True)
pie = fields.Integer(string = "Numero de jugador", required = True)

views.xml

  <record model="ir.ui.view" id="bowling_module.pista">
  <field name="name">Listado de pistas</field>
  <field name="model">bowling_module.pista</field>
  <field name="arch" type="xml">
    <tree>
      <field name="id_pista"/>
      <field name="estado"/>
      <field name="descripcion"/>
      <field name="jugador"/>
      <button name="Eliminar" string="Eliminar" class="oe_highlight"/>
    </tree>
  </field>
</record>

我可以添加按钮并看到它。但。如何添加功能?我要删除当前的玩家Removing players

谢谢。

2 个答案:

答案 0 :(得分:0)

首先,您必须使用如下所示的XML创建视图:

    <record model="ir.ui.view" id="bowling_module.pista">
      <field name="name">Listado de pistas</field>
      <field name="model">bowling_module.pista</field>
      <field name="arch" type="xml">
      <tree>
         <field name="id_pista"/>
         <field name="estado"/>
         <field name="descripcion"/>
         <field name="jugador"/>
        <button name="Eliminate" string="Eliminar" type="object" class="oe_highlight"/>
     </tree>
 </field>
 </record>

然后,在Pista类中创建一个方法,如下所示:

    def Eliminate(self):
       for record in self:
           for line in record.jugador:
                line.unlink()

当您单击该按钮时,将执行此方法并取消记录的链接。

愿这项工作。 谢谢。

答案 1 :(得分:-1)

您必须为此添加方法

def Eliminate(self):

   for record in self:
       for line in record.jugador:
            line.unlink()