Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “直接打开”;one2many表单视图“;使用创建按钮(odoo)_Python_Forms_Openerp_Openerp 7 - Fatal编程技术网

Python “直接打开”;one2many表单视图“;使用创建按钮(odoo)

Python “直接打开”;one2many表单视图“;使用创建按钮(odoo),python,forms,openerp,openerp-7,Python,Forms,Openerp,Openerp 7,我有简单的代码 python: 类测试(osv.osv): _name='test.name' _列={ 'name'=fields.char('name') } xml: 试验 test.name 形式 我想打开一个表单视图,与单击一个2任意字段后一样(使用按钮保存和关闭,保存和新建,放弃),这样我就可以点击保存和新建按钮,直接添加新条目,而无需关闭和重新打开新表单 有机会这样做吗?(无需手动创建具有自定义按钮的表单)不幸的是,您无法覆盖像create这样的ORM方法以使它们调用其他表单

我有简单的代码

python:

类测试(osv.osv):
_name='test.name'
_列={
'name'=fields.char('name')
}
xml:


试验
test.name
形式
我想打开一个表单视图,与单击一个2任意字段后一样(使用按钮
保存和关闭
保存和新建
放弃
),这样我就可以点击保存和新建按钮,直接添加新条目,而无需关闭和重新打开新表单


有机会这样做吗?(无需手动创建具有自定义按钮的表单)

不幸的是,您无法覆盖像
create
这样的ORM方法以使它们调用其他表单,因此我建议您尝试以下操作:

创建一个新的瞬态模型,就像您的 模型
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',
        }
并创建自己的视图:

<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>

您的抽象模型表单
你的.abstract.model
形式
或
然后修改显示您在问题中所写视图的菜单项,并使其调用我在此处所写的新视图


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

据我所知,没有内置的向导/弹出窗口。但是,如果模型没有那么多字段,可以使用可编辑树视图。脱离主题:为什么要使用OpenERP/Odoo V7而不是更新的版本?@CZoellner这可以帮助多次填充“名称”字段,而无需关闭和重新打开,但这不是我想要的(我需要使用按钮查看…)。谢谢你。回答您的问题:使用OpenERP/ODOOV7不是我的选择。谢谢您的回答。这种方法很好用,除非你第一次点击create按钮的时候怎么办?(这就是为什么我想在点击“创建”按钮后直接获得这种视图)此外,我做了一些非常类似的事情,只定义了返回我想要的视图的方法,但在同一个类中,并用按钮调用它们形成xml。它的工作原理和你建议的差不多。那么,创建新的瞬态模型,然后在我的测试模型中编写东西的实际好处是什么呢?我还没有尝试过,我想如果打开隐藏操作按钮的向导(
'flags':{'form':{'action_buttons':False,},}
),然后创建自己的按钮,就可以在不创建抽象模型的情况下获得相同的结果(调用非ORM方法调用ORM方法),