2015-11-05 92 views
-1

我需要保存记录并在on_change事件后以编辑模式打开表单。Odoo 8.0:在on_change事件后保存记录

见on_change事件 Before save

之前的图片中看到on_change事件后的图片。 After save

我需要在on_change事件后保存记录。 我需要的格式将是在编辑模式重绘。

类:

from openerp import models, fields, api 

class Master(models.Model): 
    _name = 'att.master' 

    name = fields.Char("Name") 
    qty = fields.Integer("Qty") 

    @api.onchange('name') 
    def _on_change_name(self): 
     if self.name: 
      self.qty += 100 
      print 'The on_change event was happened' 
      self.env['att.master'].create({'name': self.name, 'qty': self.qty}) 

的观点:

<?xml version="1.0" encoding="UTF-8"?> 
<openerp> 
    <data> 
     <!-- form AGREEMENT --> 
     <record model="ir.ui.view" id="att_master_view_form"> 
      <field name="name">Master</field> 
      <field name="model">att.master</field> 
      <field name="arch" type="xml"> 
      <form string="Master"> 
        <sheet> 
         <group colspan="4"> 
           <field name="name"/> 
           <field name="qty"/> 
           <field name="id"/> 
         </group> 
        </sheet> 
      </form> 
      </field> 
     </record> 

     <record model="ir.ui.view" id="att_master_view_tree"> 
      <field name="name">List of master</field> 
      <field name="model">att.master</field> 
      <field name="arch" type="xml"> 
       <tree string="List of master"> 
        <field name="name"/> 
        <field name="qty"/> 
        <field name="id"/> 
       </tree> 
      </field> 
     </record> 

     <!-- window action --> 
     <record model="ir.actions.act_window" id="att_master_list_action"> 
      <field name="name">Master</field> 
      <field name="res_model">att.master</field> 
      <field name="view_mode">tree,form</field> 
     </record> 

     <menuitem id="att_master_menuitem" name="Master" 
        parent="att_menu_agreement" 
        action="att_master_list_action"/> 
    </data> 
</openerp> 

我怎样才能做到这一点?

回答

0

为了节省您的更改记录,请使用方法替换createwrite,然后您只需用鼠标点击内部以查看更改。 你班上的最后一行应该是:

self.env['att.master'].write({'name': self.name, 'qty': self.qty}) 
+0

我觉得这段代码并没有真正的ID。我需要一个真实的ID来代替self.id字段中的一个NewID对象 – atimtim

+0

您可以使用NewId来浏览记录,例如'self._browse(self.env,(self.id,))' – Zety