python - 使用创建按钮直接打开 "one2many form view"(odoo)

标签 python forms odoo openerp-7

我有简单的代码。

python :

class Test(osv.osv):
    _name= 'test.name'
    _columns= {
        'name' = fields.char('Name')
}

xml:

<record model="ir.ui.view" id="test_form_view">
    <field name="name">Test</field>
    <field name="model">test.name</field>
    <field name="type">form</field>
    <field name="arch" type="xml">
        <form version="7.0">
            <sheet>
                <group>
                    <field name="name"/>
                </group>
            </sheet>
        </form>
    </field>
</record>

我想打开一个表单 View ,就像单击 one2many 字段后一样(带有按钮 save&closesave&newdiscard),这样我就可以点击保存和新建按钮并直接添加新条目,而无需关闭并重新打开新表单。

有没有机会做到这一点? (无需手动创建具有自定义按钮的表单)

最佳答案

不幸的是,您不能覆盖 ORM 方法,如 create 以使其调用其他形式,因此我建议您尝试以下方法:

创建一个新的 transient 模型,就像你的 模型 test.name,这样:

class YourAbstractModel(osv.TransientModel):
    _name= 'your.abstract.model'
    _columns= {
        'name': fields.char('Name')
    }

    def create_test_name(self, cr, uid, ids, context):
        wizard_info = self.browse(cr, uid, ids)[0]
        vals = {
            'name': wizard_info.name or False
        }
        self.pool.get('test.name').create(cr, uid, vals, context=context)
        return {
            'type': 'ir.actions.act_window',
            'res_model': 'your.abstract.model',
            'view_mode': 'form',
            'view_type': 'form',
            'views': [(False, 'form')],
            'target': 'new',
        }

并创建自己的 View :

<record model="ir.ui.view" id="your_abstract_model_form_view">
    <field name="name">Your abstract model form</field>
    <field name="model">your.abstract.model</field>
    <field name="type">form</field>
    <field name="arch" type="xml">
        <form version="7.0">
            <sheet>
                <group>
                    <field name="name"/>
                </group>
                <footer>
                    <button name="create_test_name" string="Create" type="object" class="oe_highlight"/> or 
                    <button special="cancel" string="Cancel" class="oe_link"/>
                </footer>
            </sheet>
        </form>
    </field>
</record>

然后修改显示您在问题中编写的 View 的菜单项,并使其调用我在此处编写的新 View 。

如果我很好地理解这个问题,我想你可以管理你的目的。

关于python - 使用创建按钮直接打开 "one2many form view"(odoo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37526998/

相关文章:

python - 使用Python的 `re`模块将所有字符设置为小写

python - 当一个词在另一个词中但有特殊情况时进行替换

php - 如何将两条记录插入到不同的表中,第一个使用insert,然后使用select from the insert php mysql

python - OpenERP 服务器插件 crm 模块失败

python - 属性错误 : 'Response' object has no attribute 'read'

python - 在 3D 中拟合线

Javascript,禁用按钮后,需要使其再次可用。 JS 不工作

python - Django RadioSelect 从模型中选择

python - 在继承的 TreeView 中创建和打开记录在 odoo 中不起作用

javascript - 安装过程中出现错误 : Extension is invalid - Adapting chrome extension into firefox