Odoo one2many观点

时间:2015-10-28 10:17:32

标签: python xml openerp odoo

我是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()

2 个答案:

答案 0 :(得分:3)

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.

答案 1 :(得分:3)

<强> Many2one

存储与共同模型的关系:

具体选项:

  • comodel_name :相反型号的名称
  • 委托:将其设置为True,以便可以从当前模型访问目标模型的字段(对应于_inherits)

示例

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

<强> One2many

存储多行共模的关系:

具体选项:

  • comodel_name :相反型号的名称
  • inverse_name :对立模型的关系列

示例

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

参考Odoo documentation

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