(01)odoo模型中调用窗体动作

*模型代码
  addons/stock/stock.py
  ----------------
   #移库单执行移库动作(弹出详细框)
    @api.cr_uid_ids_context
    def do_enter_transfer_details(self, cr, uid, picking, context=None):
        pass...
        #开启确认框操作(调用)
        return self.pool['stock.transfer_details'].wizard_view(cr, uid, created_id, context)
  ------------------
 
  addons/stock/wizard/stock_transfer_detail.py
  ------------------
     #定义库存移动详情弹出窗体动作
    @api.multi
    def wizard_view(self):
        #采用标准的ref 调用外部标识对象方法
        view = self.env.ref('stock.view_stock_enter_transfer_details')
       
        #用字典方式代替了平时的xml定义
        return {
            'name': _('Enter transfer details'),
           
            'type': 'ir.actions.act_window',
            #列表时采用普通列表
            'view_type': 'form',
            #列出允许使用的视图模式
            'view_mode': 'form',
            #响应的模型
            'res_model': 'stock.transfer_details',
            #列出视图,这里只有一对,就用form视图
            'views': [(view.id, 'form')],
            'view_id': view.id,
            #新开窗口
            'target': 'new',
            #指定打开form视图打开的记录
            'res_id': self.ids[0],
            #带上上下文
            'context': self.env.context,
        }
  ------------------------   

* 对应的表单视图
addons/stock/wizard/stock_transfer_detail.xml
--------------------------
         <record id="view_stock_enter_transfer_details" model="ir.ui.view">
            <field name="name">Enter transfer details</field>
            <field name="model">stock.transfer_details</field>
            <field name="arch" type="xml">
                <form string="Transfer details" version="7">
                   ....
                </form>
            </field>
        </record>
       
*简约说明

原文地址:https://www.cnblogs.com/toby2chen/p/5275815.html