首页 > 解决方案 > 在 Odoo 11 中为按钮添加功能

问题描述

我想制作一个按钮来删除游戏中的当前玩家。这些是我在 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)

视图.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>

我可以添加按钮并查看它。但。如何添加功能?我要移除当前玩家移除玩家

谢谢。

标签: buttonodoo

解决方案


首先,您必须在 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()

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

愿这项工作。谢谢你。


推荐阅读