【问题标题】:Button of one2many form view in OdooOdoo中one2many表单视图的按钮
【发布时间】:2016-11-19 08:19:34
【问题描述】:

我想问一下带有操作按钮的 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"...

但是那个按钮不知道哪个型号属于这个。如果您知道并有时间,请解释一下。谢谢。

【问题讨论】:

    标签: python xml odoo-8 formview


    【解决方案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>
    

    我希望这会对你有所帮助。

    【讨论】:

    • @Melicap 我已经这样定义了。一件奇怪的事情是当我只在视图中使用 标记时。它知道哪个对象属于那个视图。当我在该视图中声明
      标记时,它不知道哪个对象属于该 one2many 字段。那有什么不好。如果你知道,请给我解释一下。谢谢。
    • @Thae Ei Htwe 为什么您以“主要模型”形式声明?你可以像这样声明它自己的形式:
    • @Melicap 我以“其他模型”形式声明。
    • other.modelform
    • @Melicap 我已经这样尝试过了。但我不知道为什么我不能得到。 :(
    猜你喜欢
    • 2018-12-21
    • 2019-03-22
    • 2018-04-30
    • 2017-03-03
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多