在Odoo的one2many形式视图按钮

时间:2016-11-19 08:19:34

标签: python xml odoo-8 formview

我想问一下带动作按钮的one2many字段表单视图。

我有一个带有one2many字段的模型。我想在one2many表单视图中添加按钮,但是,当我在视图中添加该按钮时,它仅以只读模式显示。我不知道应该使用哪个模型/对象,所以如何添加该按钮的模型。

我的代码就是这样:

class main_model(osv.osv):
    _name = "main.model"
    _columns = {
         'other_model_ids':fields.one2many('other.model','main_id','Other'),
    }
class other_model(osv.osv):
    _name = "other.model"
    _columns = {
        'name':fields.char('Name'),
        'code':fields.char('Code'),
        'main_id':fields.many2one('main.model','Main'),
    }
...
<field name="model">main.model</field>
<field name="type">form</field>
<field name="arch" type="xml">
    <field name="other_model_ids">
         <tree string="Other Model">
              <field name="name"/>
              <field name="code"/>
         </tree>
         <form string="Other Model">
              <group>
                    <field name="name"/>
                    <button name="generate_code" string="Generate Code" type="object"/>
                    <field name="code"/>
              </group>
         </form>
    </field>
</field>
...

我想在one2many表单视图中添加该按钮。

button name="generate_code" string="Generate Code" type="object"...

但该按钮不知道哪个型号属于此。如果您知道并有时间,请解释我。感谢。

1 个答案:

答案 0 :(得分:1)

在我看来:

1.您应该在模型下定义功能:

例如:

class other_model(osv.osv):
_name = "other.model"
_columns = {
    'name':fields.char('Name'),
    'code':fields.char('Code'),
    'main_id':fields.many2one('main.model','Main'),
}

@api.one
def generate_code(self):
    pass

2.你可以试试这个:

<field name="model">main.model</field>
<field name="type">form</field>
<field name="arch" type="xml">
    <form string="Main Model">
        <notebook>
            <page string="Other Models">
                <field name="Other Model">
                    <tree>
                        <field name="name"/>
                        <field name="code"/>
                        <button name="generate_code" string="Generate Code" type="object"/>
                    </tree>
                </field>
            </page>
        </notebook>
    </form>
</field>

我希望这会对你有帮助。