Python “直接打开”;one2many表单视图“;使用创建按钮(odoo)
我有简单的代码 python: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方法以使它们调用其他表单
类测试(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方法),