首页 > 其他分享 >odoo中的name_get详解

odoo中的name_get详解

时间:2023-06-26 09:04:39浏览次数:55  
标签:name get 记录 record 字段 名称 odoo

  name_get是Odoo框架中一个非常重要的方法。它用于定义在Odoo的用户界面上如何显示一个记录的名称。name_get方法通常在许多地方使用,包括下拉选择框,一对多或多对多字段的值,或者任何需要显示模型记录名称的地方。

  1. 作用:

    name_get方法返回一个列表,每个列表元素是一个元组,其中包含记录的ID和显示的名称。默认情况下,name_get方法返回模型中name字段的值。但是在许多情况下,这并不足以唯一标识一个记录,或者提供足够的信息给用户。因此,经常需要对name_get方法进行覆盖,以便在显示时提供更详细的信息。

  2. 底层原理:

    name_get方法在models.Model基类中定义。它循环遍历记录集,为每个记录生成一个元组,包含记录的ID和显示的名称。显示的名称是通过调用display_name字段的_compute_display_name方法得到的。默认情况下,这个方法只是简单地返回name字段的值。但是,可以通过在模型中定义_rec_name属性为其他字段的名称来改变这个行为。

  3. 使用场景:

    name_get方法经常在那些需要显示模型记录名称的地方被使用。例如:

    • 在一个many2one字段的下拉选择框中,name_get定义了每个选项的显示方式。
    • 在一个many2many字段中,name_get定义了每个选择的标签的显示方式。
    • 在一个记录的Form视图中,Breadcrumbs导航中的记录名称就是通过name_get方法得到的。
  4. 例子:

    下面是一个例子,演示了如何重写name_get方法:

     1 class ResPartner(models.Model):
     2     _inherit = "res.partner"
     3 
     4     def name_get(self):
     5         result = []
     6         for record in self:
     7             name = record.name
     8             if record.city:
     9                 name = "%s, %s" % (name, record.city)
    10             result.append((record.id, name))
    11         return result

    在这个例子中,我们在合作伙伴的名称后面加上了他们所在的城市名。这样在用户界面上,每个合作伙伴的名称后面都会显示他们所在的城市,从而使用户更容易识别他们。

标签:name,get,记录,record,字段,名称,odoo
From: https://www.cnblogs.com/lyt263/p/17504421.html

相关文章

  • 三、更改INSTANCE_NAME
    三、更改INSTANCE_NAME1、检查当前的instance_name是wwlSQL>selectinstance_namefromv$instance;INSTANCE_NAME----------------wwl2、创建pfile参数文件SQL>createpfilefromspfile;                             Filecreated.3、关......
  • django 上下文管理器 get_context_data 使用
    在Django中,序列化器(serializer)是用于处理数据的序列化和反序列化的类。而get_context_data()方法是用于获取视图上下文数据的方法。默认情况下,序列化器无法直接拿到get_context_data()中的内容。如果你希望将get_context_data()中的内容传递给序列化器进行处理,可以通过以下几种方......
  • Invalid character found in the request target [/api/hsFile/download?filePath=E:
    java.lang.IllegalArgumentException:Invalidcharacterfoundintherequesttarget[/api/hsFile/download?filePath=E:\\%E4%B8%B4%E6%97%B6%E6%96%87%E4%BB%B6&fileName=N230508A0002.xlsx].ThevalidcharactersaredefinedinRFC7230andRFC39861、原因:/a......
  • 【已解决】GO语言开发中调用另一个库报错 cannot refer to unexported name XXXX
    packagemainimport( "fmt" "study_gos/main/kehu")//使用了go.mod//GOPATH;D:\workspace\studys\study_gos//cd/d/workspace/studys/study_gos/src//goenv-wGO111MODULE=on//gomodinitstudy_gos//gomodtidy//跳过goget失败//go......
  • Elasticsearch专题精讲—— REST APIs —— Cluster APIs —— Cluster get settings
    RESTAPIs——ClusterAPIs——ClustergetsettingsAPIhttps://www.elastic.co/guide/en/elasticsearch/reference/8.8/cluster-get-settings.html#cluster-get-settingsReturnscluster-widesettings.返回集群的设置。......
  • 容器基础-- namespace,Cgoup 和 UnionFS
    Namespace什么是Namespace?这里的"namespace"指的是Linuxnamespace技术,它是Linux内核实现的一种隔离方案。简而言之,Linux操作系统能够为不同的进程分配不同的namespace,每个namespace都具有独立的资源分配,从而实现了进程间的隔离。如果你的Linux安装了GCC,可以通过......
  • 1、BeanFactory.getBean 总览
    一句话概括本文以走马观花的姿态,简单分析了一波spring容器创建bean的大致环节,后续将通过单独的文章进行细讲其中的没个环节。本文将包含后文的链接,根据感兴趣的内容自取即可。1书接上回我们已经知道了spring是怎么解析标签的。现在我们解析完标签并注册到BeanFactoryReg......
  • pycharm中的gihub copilot中报错Sign in failed. Reason: Request signInInitiate fai
    pycharm中的gihubcopilot中报错Signinfailed.Reason:RequestsignInInitiatefailedwithmessage:getaddri无法使用问题解决方法:idea打开我们的插件settings-plugins-找到插件,点击homepage插件主页跳出的页面下载对应pycharm的github copilot版本安装问题解决......
  • getFavicon 自建icon api图片接口
    本文转载自:getFavicon自建iconapi图片接口更多内容请访问钻芒博客:https://www.zuanmang.net1项目地址:GitHub–owen0o0/getFaviconatwww.iowen.cn本站演示:动态获取https://api.w4i.cn/i/get.php?url=https://www.k1v.cn/静态缓存https://api.w4i.cn/i/www.k1v.cn.png安......
  • 【抖店商品详情API接口系列】抖店商品详情数据item_get
    作为现国内最大的平台之一,抖店数据采集具有多个维度。有人需要采集商品信息,包括品类、品牌、产品名、价格、销量等字段,以了解商品销售状况、热门商品属性,进行市场扩大和重要决策;有人需要采集产品评论,以明确产品优缺点、市场意向,进行新商品调研优化;除了以上之外,还有很多的应用场......