2015-09-10 4 views
2

Я хочу знать, как показать вычисленное поле one2many в дереве, я попытался следующий код, но безрезультатно:как показать вычисленное one2many поля Odoo (апите v8)

@api.one 
def _compute_o2m_field(self): 
    related_recordset = self.env["product.product"].search([]) 
    self.productos = related_recordset 

products = fields.One2many(string="products", compute='_compute_o2m_field') 

любой идея? , благодаря

ответ

4
@api.one 
def _compute_o2m_field(self): 
    related_recordset = self.env["product.product"].search([]) 
    self.products = related_recordset.ids 

products = fields.One2many('product.product','many2onefieldonproduct',string="products", compute='_compute_o2m_field') 
+0

отлично, с "related_recordset.ids" У меня есть список идентификаторов продуктов, в настоящее время, я хочу чтобы выполнить некоторые вычисления с данными о продуктах и ​​отобразить их в пользовательской таблице, как я могу показать эту таблицу в древовидном представлении, я попытался: , но в нем отображается только метка, а не значение поля, ma ybe Я могу сделать это с помощью шаблонов Qweb ??, спасибо за ответ –

1

компьютерной Филдс

Существует не более прямое создание fields.function. Вместо этого вы добавляете вычисление kwarg. Значение - это имя функции в виде строки или функции. Это позволяет иметь определение поля на вершине класса

Ваша функция вычисления должна быть, как это,

@api.multi 
def _compute_o2m_field(self): 
    related_recordset = self.env["product.product"].search([]) 
    for obj in self: 
     obj.products = related_recordset 

One2many

магазин отношение ко многим строкам сочетанной модели.

Конкретные варианты:

• comodel_name: name of the opposite model 

• comodel_name: relational column of the opposite model 

Таким образом, ваше определение поля должно быть, как это,

products = fields.One2many(comodel_name,comodel_name,string="products", compute='_compute_o2m_field') 
Смежные вопросы