odoo中display_name的探究

display_name

有次无意发现form视图存在display_name字段,但是明明没有定义,于是好奇哪里来的。
研究源码:
    @api.model
    def _add_magic_fields(self):
        ..........
        
        def add(name, field):
            """ add ``field`` with the given ``name`` if it does not exist yet """
            if name not in self._fields:
                self._add_field(name, field)

        add('display_name', fields.Char(string='Display Name', automatic=True,
            compute='_compute_display_name'))
    @api.depends(lambda self: (self._rec_name,) if self._rec_name else ())
    def _compute_display_name(self):
        names = dict(self.name_get())
        for record in self:
            record.display_name = names.get(record.id, False)

由此可见,display_name是根据compute计算字段而来的,是系统自己添加的,而且由name_get形成的。为了验证,打开了模型,调用fields_get(),果然有display_name字段,而且视图字段也是有该字段的,并不会存数据库中。
在这里插入图片描述
在这里插入图片描述
发现问题,有时耐心地查看源码,能解决大部分问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值