Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

Odoo中的“稀疏字段”类型支持被移到了单独的模块里了


  • 管理员

    Odoo中有一个很特殊的字段类型:“稀疏字段” 和与之对应的"序列化字段“,估计没有人用到过,不过它真的一直是存在的。用法如下:

    class MySparseModel(models.Model):
        _name = 'Mymodel.sparse_test'
    
        data = fields.Serialized()
        boolean = fields.Boolean(sparse='data')
        integer = fields.Integer(sparse='data')
        float = fields.Float(sparse='data')
        char = fields.Char(sparse='data')
        selection = fields.Selection([('one', 'One'), ('two', 'Two')], sparse='data')
        partner = fields.Many2one('res.partner', sparse='data')
    

    这里我们首先定义了一个“序列化字段”,其实它就是一个普通的text字段,而后面所定义的各种类型的字段与普通字段的区别在于有一个sparse参数指向之前的序列化字段。
    后面这一系列字段就是所谓的“稀疏字段”。它并不会在数据库中创建对应的字段,而是其值会通过json序列化后存储到对应的“序列化字段”。通过名字,我们也能了解到这种字段的应用场景,就是“稀疏字段”的值大多数情况下都是空值,只有很少数的情况下会有值,单独在数据库中保留一个字段并不合理,所以可以讲非空的值序列化后存储到“序列化字段”内。

    好象还不错的想法,不过好像Odoo公司的人也没怎么用过这个类型的字段,所以它终于被移出了核心,放到了addons里,真有好这口的可以找sparse_fields这个模块,然后安装后使用。

    这是讲这个字段类型移出核心的提交:
    https://github.com/odoo/odoo/pull/15070



  • 感觉还是挺用意思的字段....



  • 以后我觉得WEBSITE部分的开发可能还真用的上,不破坏原本ERP原则,只做为扩展WEB信息使用还是可以的!


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待