我有简单的代码。
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&close
、save&new
、discard
),这样我就可以点击保存和新建按钮并直接添加新条目,而无需关闭并重新打开新表单。
有没有机会做到这一点? (无需手动创建具有自定义按钮的表单)
最佳答案
不幸的是,您不能覆盖 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/