Python 当我使用其他模型中的字段时,如何使用“store=True”计算字段?
我在联系人树视图中有pos_order_total字段。如果store=False,它会被正确计算,但是如果store=True,如果我下了一些POS订单,它就不会被计算。那么,我如何使用store=True实现这一点呢 学说 请看一看奥多的文档 如您所见,您需要添加依赖项来触发计算方法并更新值。在这种情况下,字段value和tax在同一个模型中。因此,如果您使用的是来自同一个模型或与该模型相关的字段,store=True将很好地工作。因此,如果可能的话,应该通过关系连接字段 解决方案 在您的情况下,需要创建一个one2many字段来关联表。检查以下代码是否适用于您:Python 当我使用其他模型中的字段时,如何使用“store=True”计算字段?,python,python-2.7,odoo-8,odoo,odoo-10,Python,Python 2.7,Odoo 8,Odoo,Odoo 10,我在联系人树视图中有pos_order_total字段。如果store=False,它会被正确计算,但是如果store=True,如果我下了一些POS订单,它就不会被计算。那么,我如何使用store=True实现这一点呢 学说 请看一看奥多的文档 如您所见,您需要添加依赖项来触发计算方法并更新值。在这种情况下,字段value和tax在同一个模型中。因此,如果您使用的是来自同一个模型或与该模型相关的字段,store=True将很好地工作。因此,如果可能的话,应该通过关系连接字段 解决方案 在您的情
class ResPartner(models.Model):
_inherit = 'res.partner'
pos_order_total = fields.Float(
string='POS Order Total',
compute='_compute_pos_order_total',
store=True
)
pos_order_ids = fields.One2many(
string=u'POS Orders',
comodel_name='pos.order',
inverse_name='partner_id',
)
@api.multi
@api.depends('pos_order_ids.amount_total')
def _compute_pos_order_total(self):
for partner in self:
total = 0.0
for order in partner.pos_order_ids:
total += order.amount_total
partner.pos_order_total = total
学说
请看一看奥多的文档
如您所见,您需要添加依赖项来触发计算方法并更新值。在这种情况下,字段value和tax在同一个模型中。因此,如果您使用的是来自同一个模型或与该模型相关的字段,store=True将很好地工作。因此,如果可能的话,应该通过关系连接字段
解决方案
在您的情况下,需要创建一个one2many字段来关联表。检查以下代码是否适用于您:
class ResPartner(models.Model):
_inherit = 'res.partner'
pos_order_total = fields.Float(
string='POS Order Total',
compute='_compute_pos_order_total',
store=True
)
pos_order_ids = fields.One2many(
string=u'POS Orders',
comodel_name='pos.order',
inverse_name='partner_id',
)
@api.multi
@api.depends('pos_order_ids.amount_total')
def _compute_pos_order_total(self):
for partner in self:
total = 0.0
for order in partner.pos_order_ids:
total += order.amount_total
partner.pos_order_total = total
这是另一种解决方案:
class ResPartner(models.Model):
_inherit = 'res.partner'
pos_order_total = fields.Float(
string='POS Order Total',
compute='_compute_pos_order_total',
store=True)
pos_order_ids = fields.One2many(comodel_name='pos.order',
inverse_name='partner_id',
string='Pos Ordres')
@api.one
@api.depends('pos_order_ids')
def _compute_pos_order_total(self):
Order_id = self.env['pos.order'].search([('partner_id', '=', self.id)])
for Order in Order_id:
total = 0.0
total += Order.amount_total
self.pos_order_total = total
这是另一种解决方案:
class ResPartner(models.Model):
_inherit = 'res.partner'
pos_order_total = fields.Float(
string='POS Order Total',
compute='_compute_pos_order_total',
store=True)
pos_order_ids = fields.One2many(comodel_name='pos.order',
inverse_name='partner_id',
string='Pos Ordres')
@api.one
@api.depends('pos_order_ids')
def _compute_pos_order_total(self):
Order_id = self.env['pos.order'].search([('partner_id', '=', self.id)])
for Order in Order_id:
total = 0.0
total += Order.amount_total
self.pos_order_total = total
你为什么要储存它?你为什么要储存它?