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

标签 python odoo odoo-8

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

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

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

最佳答案

在您的情况下,您可以拆分提供的参数并像这样使用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)

将 account.invoice 分配给值

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

循环遍历我们的属性并检查值是否具有该属性。如果是,则获取其值,否则返回。

return value

返回最终值,在本例中为合作伙伴名称

关于python - 如何从odoo 8中的orm获取数据库值和从字符串获取字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59978853/

相关文章:

python - 门户用户如何在 Odoo 8 中修改自己的合作伙伴数据?

python - 如何为下面的字典创建 json 字符串

python - MLPClassifier 的每次迭代都可以获得测试分数吗?

python - 如何找到列表中第二大的数字?

python - django模板中的转义问题

javascript - 如何检查 Odoo 中的用户是否属于多个组?

python - QuickBooks 在传递值时解析提供的 XML 文本流时发现错误

unit-testing - Odoo 单元测试未运行

javascript - Odoo - 在特定 View 上自动刷新页面

python - 如何将当前日期分配给 odoo v8 中的日期字段?