【发布时间】: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)
【问题讨论】: