2015-11-05 82 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