【问题标题】:Custom data in one2many field in OdooOdoo中one2many字段中的自定义数据
【发布时间】:2016-11-29 12:10:59
【问题描述】:

我正在处理这个 Odoo 任务。我必须制作一个自定义模块,其中的要求是这样的。

有一个表格说“笔记本”,它包含一个来自“hr.employee”的字段,即Many2one。此表单将包含的下一件事是一个包含 3 列(质量、分数、评论)的表格。现在 Qualities 必须是一个包含许多质量名称的主表。

我以 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)

【问题讨论】:

    标签: openerp odoo-8


    【解决方案1】:

    有一种更简单的方法可以做到这一点,只需在字段定义中将默认分数设置为 0

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

    这样一来,所有分数在创建时都会为零

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多