Python Compute字段未自我更新odoo 8
account.report类中的计算字段(余额)具有store=True parm,并且它依赖于accounts.accounts.entries.balance,当依赖字段的余额更改时,它应该更改,如果手动添加journal.entries记录,则它可以工作,但如果它是通过exmaple createjournal()创建的函数account.type和account.report中的余额未更新。触发get_balance函数的任何解决方案Python Compute字段未自我更新odoo 8,python,python-2.7,openerp,Python,Python 2.7,Openerp,account.report类中的计算字段(余额)具有store=True parm,并且它依赖于accounts.accounts.entries.balance,当依赖字段的余额更改时,它应该更改,如果手动添加journal.entries记录,则它可以工作,但如果它是通过exmaple createjournal()创建的函数account.type和account.report中的余额未更新。触发get_balance函数的任何解决方案 @api.multi def createjour
@api.multi
def createjournal(self):
journal = self.env['journal.entries']
journal.sudo().create({'name': "new record"})
class JournalEntries(models.Model):
_name = 'journal.entries'
debit = fields.Float()
credit = fields.Float()
balance = fields.Float(compute="get_balance", store=True)
@api.depends('credit','debit')
def get_balance(self):
for x in self:
balance = x.debit - x.credit
x.balance = abs(balance)
class ErpAccount(models.Model):
_name = 'erp.account'
entries = fields.One2many('journal.entries','account')
balance = fields.Float(compute="get_balance")
debit = fields.Float(compute="get_debit")
credit = fields.Float(compute="get_credit")
@api.multi
@api.depends('debit','credit')
def get_balance(self):
for x in self:
balance = x.debit - x.credit
x.balance = abs(balance)
@api.multi
def get_debit(self):
for x in self:
x.debit = sum(line.debit for line in x.entries)
@api.multi
def get_credit(self):
for x in self:
x.credit = sum(line.credit for line in x.entries)
class AccountType(models.Model):
_name = 'account.type'
accounts = fields.One2many('erp.account','account_type')
balance = fields.Float(compute="get_balance")
debit = fields.Float(compute="get_debit")
credit = fields.Float(compute="get_credit")
@api.multi
@api.depends('accounts.entries.balance')
def get_balance(self):
for x in self:
x.balance = sum(line.balance for line in x.accounts)
@api.multi
def get_debit(self):
for x in self:
x.debit = sum(line.debit for line in x.accounts)
@api.multi
def get_credit(self):
for x in self:
x.credit = sum(line.credit for line in x.accounts)
class AccountReportName(models.Model):
_name = 'account.report'
types = fields.One2many('account.type','report_account')
balance = fields.Float(compute="get_balance", store=True)
debit = fields.Float(compute="get_debit")
credit = fields.Float(compute="get_credit")
@api.multi
@api.depends('types.accounts.entries.balance')
def get_balance(self):
for x in self:
x.balance = sum(line.balance for line in x.types)
@api.multi
def get_debit(self):
for x in self:
x.debit = sum(line.debit for line in x.types)
@api.multi
def get_credit(self):
for x in self:
x.credit = sum(line.credit for line in x.types)
当您希望更新余额时,应删除
store=True
由于这只会在您编辑日记账分录记录时更新。问题已解决,我在erp.account上添加了@api.depends('entries.balance','entries.active'),它工作正常 是的,但存储是必需的,否则它将不会出现在搜索以及图形上。您可以创建一个自定义搜索功能。那么平衡值不会出现在图形视图中呢