Odoo one2many 视图

Odoo one2many view

我是 Odoo 和 python 的初学者,我想创建一个简单的模块,它应该为一个人(学生、员工等)插入一些类别,然后插入带有字段的人类别。我的问题是,如何创建 p_c_view.xml。我试图调整我发现的一些 xmls 示例,但没有成功。这是我的 p_c.py 文件。谢谢

 class p_c_person(osv.osv):
        _name = "p_c.person"
        _description = "Person"
        _columns = {
            'name': fields.char('Persone', size=128, required=True),
            'categories': fields.one2many('p_c.category', 'category_id', 'Categories'
        }

    p_c_person()

    class p_c_category(osv.osv):
        _name = "p_c.category"
        _description = "Category"
        _columns = {
            'name': fields.char('Category', size=128, required=True),
            'property_id': fields.many2one('p_c.person', 'Person Name', select=True),
        }

    p_c_category()

one2many 字段使用该对象响应 many2one 字段。

尝试使用此代码

class p_c_person(osv.osv):
    _name = "p_c.person"
    _description = "Person"
    _columns = {
        'name': fields.char('Persone', size=128, required=True),
        'categories': fields.one2many('p_c.category', 'property_id', 'Categories'
    }

p_c_person()

class p_c_category(osv.osv):
    _name = "p_c.category"
    _description = "Category"
    _columns = {
        'name': fields.char('Category', size=128, required=True),
        'property_id': fields.many2one('p_c.person', 'Person Name', select=True),
    }

p_c_category()

更多详情请访问odoo documentation.

Many2one

存储与联合模型的关系:

具体选项:

  • comodel_name:对面模型名称
  • delegate:将其设置为True,使目标模型的字段可从当前模型访问(对应于_inherits)

示例

'property_id': fields.many2one('p_c.person', 'Person Name', select=True),

一对多

存储与多行协同模型的关系:

具体选项:

  • comodel_name:对面模型名称
  • inverse_name: 对立模型的关系列

示例

'categories': fields.one2many('p_c.category', 'property_id', 'Categories'),

参考Odoo documentation

One2many 字段仅为该模型的关系 many2one 字段创建,它使您可以自由地双向旅行。当您在定义了 many2one 字段的参考模型中创建记录时,Odoo 引擎会管理完整性,然后您也会在 one2many 字段中看到效果。