#python-3.x #odoo #odoo-12
#python-3.x #odoo #odoo-12
Вопрос:
У меня возникла проблема с тем, что lot_name не показывает то же значение из другого вычислительного поля в том же наборе записей, stock.move.line. ниже приведен мой код:
class StockMoveLine(models.Model):
_name = 'stock.move.line'
_inherit = 'stock.move.line'
lotter = fields.Char(string="Supplier Lot", compute='_compute_partner')
def _compute_partner(self):
if not self.lotter:
partner_id = self.env['stock.picking'].search([('name','=',self.reference)]).partner_id.id
self.lotter = str(partner_id)
if self.lot_name == "":
self.lot_name = self.lotter
else:
self.lot_name = "blank"
имя_потока уже существовало в поле базового модуля. Поэтому я хотел бы также показать partner_id в поле lot_name. теперь я вижу его только в своем новом вычислительном поле. Я пытался использовать @api.onchange, но это работает только тогда, когда текстовое поле lotter потеряно из фокуса. как я могу сделать, чтобы отобразить одно и то же значение в полях lotter и lot_name, если ранее значения не было?
Ответ №1:
Добавьте store = True в свое поле.Поскольку вычислительное поле не хранится в вашей базе данных.
lotter = fields.Char(string="Supplier Lot", compute='_compute_partner', store=True)
Комментарии:
1. Функция нуждается
for rec in self:
в многотипном решении