【问题标题】:Is Not JSON Serializable odoo computed one2many errorIs Not JSON Serializable odoo 计算 one2many 错误
【发布时间】:2015-10-28 17:06:10
【问题描述】:

这是关于新 API 的很好的解释。

另外,我对计算的 one2many 字段有疑问。以此为例

类父类计算了一个对子类的 one2many 字段。我希望 one2many 字段自动填充一些随机值。

所以,我给我的字段计算。还可以使用@api.depends("some_field") 创建一个方法。

要从方法中向 one2many 字段插入值,我使用 childfield += self.env['class_child'].new({'key':value})。

在创建父级时,它工作正常,每次更改依赖字段时都会更新 one2many 字段。问题出在父编辑处,当我尝试更改依赖值时,出现错误:

TypeError: is not JSON serializable

我不明白我的概念有什么问题,我错了吗?还是在编辑父类时需要使用其他方法。

谢谢

【问题讨论】:

    标签: json odoo computed-field


    【解决方案1】:

    试试这种类型的代码:

    self.env['class_child'].create({
    'key': [(0, 0, {'field_name1': 'field Value', 'field_name2': 'field value'})]
    

    对于 one2many 字段,需要一串元组。

    这里是接受的元组列表,以及相应的语义:

    (0, 0, { values }) #链接到需要使用给定值字典创建的新记录

    (1, ID, { values }) #用id = ID更新链接记录(写上values

    (2, ID) #remove 并删除 id = ID 的链接记录(在 ID 上调用 unlink,这将完全删除对象,以及指向它的链接)

    示例:

    [(0, 0, {'field_name':field_value_record1, ...}), (0, 0, {'field_name':field_value_record2, ...})]
    

    【讨论】:

    • 感谢您的回答,不幸的是它不起作用,因为它提供了另一个 probluem。在创建父级时,出现如下错误:'KeyError: '。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 2013-11-25
    • 2019-05-06
    • 2019-10-09
    • 2021-03-02
    • 1970-01-01
    相关资源
    最近更新 更多