ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

odoo many2one,在视图显示什么?

2022-07-11 11:35:34  阅读:173  来源: 互联网

标签:name self many2one 视图 class record result odoo id


当我们定义了many2one的时候,是希望在另一张表里面选择我们制定好的可填范围。

那么选择的时候显示什么呢?

默认是显示name这个名字

具体可以看 odoo/models.py   BaseModel  下有个函数  

    def name_get(self):
        """ name_get() -> [(id, name), ...]

        Returns a textual representation for the records in ``self``.
        By default this is the value of the ``display_name`` field.

        :return: list of pairs ``(id, text_repr)`` for each records
        :rtype: list(tuple)
        """
        result = []
        name = self._rec_name
        if name in self._fields:
            convert = self._fields[name].convert_to_display_name
            for record in self:
                result.append((record.id, convert(record[name], record)))
        else:
            for record in self:
                result.append((record.id, "%s,%s" % (record._name, record.id)))

        return result

如果你没定义name这个名字,就会显示的乱七八糟,如果你像显示的更复杂一些,也要复写这个方法

下面是返回class_name

当然你也可以继续改写

class labor_personnel_personnel_order_class(models.Model):
    _name = "labor_personnel.personnel_order_class"

    class_name = fields.Char()

    def name_get(self):
        # 重写函数,更改many2one显示值名字和指定返回ID
        result = []
        for record in self:
            name = record.class_name  # 实现修改显示值名字
            result.append((record.id, name))
        return result
View Code

 

标签:name,self,many2one,视图,class,record,result,odoo,id
来源: https://www.cnblogs.com/jackadam/p/16465832.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有