2016-11-29 94 views
0

我正在開發此Odoo任務。我必須製作一個自定義模塊,其中的要求是這樣的。Odoo one2many字段中的自定義數據

有一種形式說「筆記本」,它包含一個來自'hr.employee'即Many2one的字段。接下來這個表格將包含一個表格,其中有3列(質量,分數,評論)。現在質量必須是包含許多質量名稱的主表。

我已以SalesOrder表單的方式完成了此任務,即對於特定的銷售訂單,有多個銷售行。

但我希望所有的素質,在那裏與0

這裏默認分值的形式是碼

請告訴我該決議

class qualities_fields(models.Model): 

    _name = "ayda.qualities.fields"  
    _description = "Contains only Attributes"   
    @api.multi  
    def name_get(self): 

     data = []   
     for rows in self: 

      value = ''    
      value += rows.quality_name    
      data.append((rows.id, value))   
     return data   

    quality_name = fields.Char(string="Quality Name") 

class qualities_data(models.Model): 

    _name = "qualities.data"  
    _description = "All points mandatory to be filled"  
    quality_id = fields.Many2one('notebook', string="Quality IDs")  
    quality_name = fields.Many2one('qualities.fields', string="Quality Name")  
    score = fields.Integer(string="Score")  
    comment = fields.Char(string="Comment") 

class notebook(models.Model): 

    _name = "notebook"  
    _description = "Checking one2many of qualities" 
    def createRecords(self): 

     cr = self.pool.cursor()   
     quantity_fields = self.pool.get('qualities.fields').search(cr, self.env.uid, [])   
     quantity_lines = []   
     for field in quantity_fields: 

      quality_data = {       
          'quality_id' : self.id,       
          'quality_name' : field.id, 
          'score' : 0, 
          'comment' : ''      
          } 
      quantity_lines.append(quality_data)   
     return quantity_lines 
    name = fields.Many2one('hr.employee', string="Name")  
    qualities_line = fields.One2many('qualities.data', 'quality_id', string="Qualities Line", default=createRecords) 

回答

0

有一個簡單的方法要做到這一點,在字段定義上只需設置默認分數爲0

score = fields.Integer(string="Score", default=0) 

那樣,當他們創建時,所有分數都爲零