gpt4 book ai didi

python - Odoo 自定义设置页面中的 Many2one 字段

转载 作者:太空宇宙 更新时间:2023-11-03 21:06:59 24 4
gpt4 key购买 nike

我正在尝试在odoo11的设置页面中添加many2one字段。我可以在设置页面中添加字符或整数字段,但使用 Many2one 字段时出现错误。

错误:

     psycopg2.DataError: invalid input syntax for integer:"double.accounts(406,)"
LINE 1: ...FROM "double_accounts" WHERE "double_accounts".id IN ('double.acco...

这是我的代码:

类 AccountSetting(models.TransientModel):

_inherit = 'res.config.settings'

authtoken_module = fields.Char(default_model='account.move')
organization_module = fields.Char(default_model='account.move')
double_accounts_id = fields.Many2one('double.accounts', string="double Entery", default_model='account.move')

def get_values(self):
res = super(AccountSetting, self).get_values()
res.update({
'authtoken_module': self.env['ir.config_parameter'].sudo().get_param('account.authtoken_module', default=''),
'organization_module': self.env['ir.config_parameter'].sudo().get_param('account.organization_module'),
#### the error that i am facing from this line
'double_accounts_id': self.env['ir.config_parameter'].sudo().get_param('account.double_accounts_id', default=''),
####
})
return res

def set_values(self):
super(AccountSetting, self).set_values()
self.env['ir.config_parameter'].sudo().set_param('account.authtoken_module', (self.authtoken_module or ''))
self.env['ir.config_parameter'].sudo().set_param('account.organization_module', (self.organization_module or ''))
self.env['ir.config_parameter'].sudo().set_param('account.double_accounts_id', (self.double_accounts_id or ''))

最佳答案

还没仔细研究过。但似乎您从参数中获得了记录集而不是 ID。因此,一个简单的解决方案是将 .id 放在标记行的末尾。但这不是完整的解决方案,因为您的默认值必须更改为 self.sudo().env['account.double_accounts_id'],其中 .id 将工作也一样。

我真的很想知道为什么你会得到一个记录集,也许有人可以回答这个问题。

关于python - Odoo 自定义设置页面中的 Many2one 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55333116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com