【问题标题】:How to use oe_kanban_list_many2many style in OpenERP7?如何在 OpenERP 7 中使用看板列表 many2many 样式?
【发布时间】:2014-10-15 08:11:42
【问题描述】:

我有一个模型 (res.partner) 具有 many2many 字段属性 (courses)。它显示了合作伙伴加入的课程。在合作伙伴的看板视图中,我使用了 oe_kanban_list_many2many 类,我可以在合作伙伴的名称下方看到一个标签列表,指示合作伙伴加入的课程。

但是,情况发生了变化。我需要存储一些关于合作伙伴和课程之间关系的额外信息(joining_date),所以我不得不将字段类型courses(从many2many 更改为one2many),并创建一个新的中间表具有属性partner_id (many2one)、course_id (many2one) 和joining_date

所以,总结一下:

之前

res.partner

_columns = {
... 'courses': fields.many2many('course', 'res_partner_course_rel', 'partner_id', 'course_id', 'Courses'), ...
}

看板视图

<span class="oe_kanban_list_many2many">
    <field name="courses"/>
</span>

现在

res.partner.course

_columns = {
    'partner_id': fields.many2one('res.partner', 'Partner'),
    'course_id': fields.many2one('course', 'Course'),
    'date': fields.date('Joining Date'),
}

res.partner

_columns = {
... 'courses': fields.one2many('res.partner.course', 'partner_id'), ...
}

看板视图

<span class="oe_kanban_list_one2many">
    <field name="courses"/>
</span>

在看板中,我想继续在标签上看到合作伙伴加入的课程,但我看到的是(n 条记录)。例如,如果合作伙伴“John”加入了两门课程,我会在“John”下方看到(2 条记录)

我怎样才能像以前一样显示课程?

【问题讨论】:

    标签: python xml openerp openerp-7 kanban


    【解决方案1】:

    最后,我找到了解决方案。可能不是最好的,但很有效,我希望它对任何人都有帮助。

    我在 res.partner 中声明了一个新字段,类型为 function:

    'courses': fields.function(
                _get_courses,
                type='many2many',
                obj="course",
                method=True,
                string='Courses'),
    

    在此之上,我声明了函数 _get_courses,在其中我进行 SQL 查询以获取合作伙伴加入的所有课程。该函数返回具有此结构的字典(让我们展示一个带有虚构数据的示例): {partner_id_1: [joined_course_id_1,joined_course_id_2,], partner_id_2: [joined_course_id_1,], partner_id_3: [joined_course_id_5,joined_course_id_8,],} ...

    然后,在 XML 看板视图中,我们在 oe_kanban_list_many2many 类的标签内显示我们的新功能字段:

    <span class="oe_kanban_list_many2many">
         <field name="courses"/>
    </span>
    

    就是这样,现在我可以查看合作伙伴加入的每门课程的标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      相关资源
      最近更新 更多