如何在odoo 8中从orm获取数据库值和从字符串获取字段名称

时间:2020-01-30 03:53:55

标签: python odoo odoo-8

我从配置中获取字段名称字符串。

para = 'partner_id.name'
account.invoice(281088,).para 
*** AttributeError: 'account.invoice' object has no attribute 'para'

系统无法准确知道数据库字段名称,它来自用户配置。

1 个答案:

答案 0 :(得分:0)

根据您的情况,您可以拆分提供的参数并像这样使用dd/mm/yyyy

getattr
para = 'partner_id.name'
attributes = para.split('.')
value = account.invoice(281088)
for attribute in attributes:
    if hasattr(value, attribute):
        value = getattr(value, attribute)
    else:
        return False
return value

这将拆分用户提供的参数。在这种情况下,属性值将变为attributes = para.split('.')

['partner_id', 'name']

为帐户分配发票。

value = account.invoice(281088)

浏览我们的属性,并检查value是否具有该属性。如果是这样,则获取其值,否则返回其他值。

for attribute in attributes:
    if hasattr(value, attribute):
        value = getattr(value, attribute)
    else:
        return False

返回结局值(在这种情况下为合作伙伴名称)