如何在odoo 8的列表视图中显示man2many字段?

时间:2018-01-16 06:16:31

标签: listview treeview many-to-many odoo-8 odoo

我尝试了两种方法在列表视图中显示many2many字段,但它们都没有工作:

1)b - >它只显示记录的数量。(即(3条记录))

2)<field name="test_ids"/> - &gt;它显示了记录的ID。 (即2,3,4)

如何实现这个目标?

4 个答案:

答案 0 :(得分:6)

通常,

<field name="test_ids" widget="many2many_tags"/> 

必须工作。

显示ID的m2m列的原因是您的共同模型在模型中不包含名称字段或 _rec_name 声明。

答案 1 :(得分:1)

试试这个。

<field name="test_ids" widget="many2many_tags"/> 

答案 2 :(得分:1)

好像你没有相关型号的记录名。您有两种选择:

  • 在相关模型中添加字段名称。
  • 在相关模型上定义_rec_name以指向要显示的名称的正确字段。

答案 3 :(得分:1)

要在列表视图中显示many2many字段,您必须使用many2many_tags

现在它显示了ID列表,因为Odoo不知道如何表示  关系领域的记录。

如何告诉Odoo他如何代表唱片有两种方式:

如果您的记录可以用字段值表示,那么

1- easy one正在使用rec_name    例如国家/地区,国家/地区的名称足以显示不同的记录

   class YourClass..
      _name = 'your_model_name'
      _rec_name = 'field_name' # here put the name of the field

2-秒,当一个字段不能代表记录时使用name_get

class YourClass..
    _name = 'your_model_name'
    .....
    .....

    # implement this method in you model class
    @api.multi
    def name_get(self):
        """ change representation of the record by concatinating two field"""
        result = []
        for record in self:
            result.append((record.id, _("%s %s") % (
                  record.some_field, record.some_other_field)))
        return result