首页 > 解决方案 > odoo 从 anthor 类调用按钮上的方法

问题描述

大家好,我想从另一个对象调用一个方法,但我无法解决这个问题以调用一个方法这是我的代码 xml 我正在使用记录来继承按钮来创建按钮调用我的方法

<record id="view_send_email_homework" model="ir.ui.view">
    <field name="name">send.email.homework</field>
    <field name="model">homework.student</field>
    <field name="inherit_id" ref="parent_access.view_homework_student_form"/>
    <field name="arch" type="xml">
        <xpath expr="//button[@name='send_message']" position="replace">
            <button
                name="send_mail" type="object"
                string="Envoyer"
                class="oe_highlight"
            />
        </xpath>
    </field>
</record>  

该方法是在我的代码python的另一个对象上定义的

          class send_email_homework(models.Model):
          _name = 'send.email.homework'
          _inherit = 'homework.student'

         def send_mail(self, cr, uid, ids, context=None):
             email_template_obj = self.pool.get('email.template')

当我按下按钮时,他向我显示这条消息

AttributeError:“homework.student”对象没有属性“send_mail”

标签: pythonodooodoo-8odoo-10

解决方案


您必须删除_name = 'send.email.homework',因为在那种继承类型中您不能继承方法。它只继承字段...

使用以下代码替换您的代码:

class send_email_homework(models.Model):
        _inherit = 'homework.student'

推荐阅读