之前我们已经讲解了odoo ORM中的一些对字段常用的API操作方法,今天我们继续研究一下Odoo orm中字段的一些通用属性字段的使用,学会它们可以为自己创建数据映射并使用有更好的帮助。

通用字段属性

实例化映射模型的时候时可以使用以下属性

  • string(str)

    • xml视图在渲染的时候会显示这个值的内容。
    • fandx_name = fields.Char(string="姓名")
  • help(str)

    • 帮助文字,鼠标放到对应字段上面会出现help的描述内容。
    • fandx_name = fields.Char(help="这是一个姓名")
  • readonly(bool)

    • 是否是只读,只读则不可以修改字段的内容,在视图中不可以修改对应字段的内容。
    • fand_name = fields.Char(string="姓名", readonly=True)
  • required(bool)

    • 是否必填,如果required为True,那么这个字在XML视图显示的时候不填则保存的时候会报错。
    • fandx_name = fields.Char(string="姓名", readonly=True, required=True)
  • index(bool)

    • 是否在数据库建立索引,加上索引的字段在搜索的时候会有速度的提升。
    • fandx_name = fields.Char(string="姓名", readonly=True, required=True, index=True)
  • default(value 或者 callable)

    • default可以设置这个字段的默认值。

    • default的内容可以是固定的默认值。

    • default也可以是一个被调用的function,default的值会自动设置为function的返回值。

    • 方式一:fandx_name = fields.Char(string="姓名", default="张三")

    • 方式二:fandx_name = fields.Char(string="姓名", default=lambda self: self.env.user.display_name)

    • 方式三:

      def _defult_name(self):
      return self.env.user.display_name
      fandx_name = fields.Char(string="姓名", invisible=True, default=_defult_name)
  • states(bool)

    • 这个可以根据state状态的的值动态改变字段在XML中的显示状态。

    • 必须配合state状态字段使用。

      model.py

      state = fields.Selection([('create', '创建'), ('finish', '已完成')], string='状态', default='create')
      fandx_test = fields.Char("测试字段", states={'create': [('required', True)], 'finish': [('readonly', True)]})

      View.xml

      <field name="state" />
      <field name="fandx_test" />
    • 注意:!!!用到这个方法必须要在xml视图中加载state字段,如果不加载则会报JS错误。

  • groups(str)

    • 权限组,odoo中可以去配置自己的权限组,可以给指定的字段赋予权限组,这个字段会根据权限组的内容设置进行限制增删改查权限。
    • fandx_name = fields.Char(string="姓名", default="张三", groups='base.group_user')
  • company_dependent(bool)

    • 这个字段如果为True的话,这个字段的数据值会根据登录的用户的公司进行绑定,可以实现不同用户不同字段内容显示。
    • fandx_name = fields.Char(string="姓名", company_dependent=True)
  • copy(bool)

    • odoo有自带的模型快速复制的功能,这个如果copy的值为False那么就不会被复制,这个值默认值为True,one2many字段和计算字段是默认为Fasle的。
    • fandx_name = fields.Char(string="姓名", company_dependent=True, copy=False)
  • store(bool)

    • 是否存储到数据库中,默认值为True,compute计算字段默认值为False。
    • fandx_name = fields.Char(string="姓名", store=False)
  • group_operator(str)

    • 这里的str内容是固定的选择,在搜索分组的时候计算字段的值会用到这个group_operator的内容。

      • count - 计算数量。

      • count_distinct - 数据不同的数量。

      • bool_and - 如果所有值都为true,则为true,否则为false。

      • bool_or - true if at least one value is true, otherwise false。

      • max - 最大值。

      • min - 最小值。

      • avg - 平均值。

      • sum - 求和。

    • fandx_nums = fields.Integer(string="a_test", group_operator='sum')

  • group_expand(str)

    • 这里传进一个方法名称,在分组的时候会进行调用这个方法。

      state = fields.Selection([('create', '创建'), ('finish', '已完成')], string='状态', default='create', group_expand="_expand_states")
      
      def _expand_states(self, states, domain, order):
      # 这里返回需要成组的字段,如果按state分组就会走到这个方法!
      return [key for key, val in type(self).state.selection]

总结

  • 通用属性在创建字段的时候是经常会用到的,我们需要灵活的使用它们。
  • 还有compute计算属性,这里就先不做解释,后面单独去讲解它。
  • 如果有问题请在下方留言讨论或者联系我W:fandx_

ORM研究3 - odoo fields常用的字段属性的更多相关文章

  1. Python - Django - ORM 常用的字段属性

    字段参数: null:用于表示某个字段可以为空 unique:如果设置为 unique=True,则该字段在此表中必须是唯一的 db_index:如果 db_index=True,则代表着为此字段设置 ...

  2. Odoo ORM研究2 - BaseModel中的常用方法分析

    今天继续研究ORM的BaseModel,昨天研究了一下所有常用属性的具体用法,那么今天研究一下BaseModel中一些常用的方法,我们学会它们并灵活的应用它们,可以为我们开发解决很多的问题. odoo ...

  3. Django ORM (一) 创建数据库和模型常用的字段类型参数及Field 重要参数介绍

    创建一个 Django 项目及应用 django-admin startproject orm cd orm python manage.py startapp app01 在 models.py 上 ...

  4. odoo字段属性列举

    罗列一些Odoo中的字段属性,基本包含大部分的属性. 常用字段属性 平平无奇常用字段属性 string:字段的标题,在UI视图标签中使用.它是可选项,如未设置,会通过首字母大写及将空格替换成为下划线来 ...

  5. odoo字段属性

    以下为可用的非关联字段类型以及其对应的位置参数: Char(string)是一个单行文本,唯一位置参数是string字段标签. Text(string)是一个多行文本,唯一位置参数是string字段标 ...

  6. django的Model 模型中常用的字段类型

    常用的字段类型: AutoField:自增长字段,通常不用,如果未在Model中显示指定主键,django会默认建立一个整型的自增长主键字段 BooleanField:布尔型,值为True或False ...

  7. EntityFramework Core 1.1+ Backing Fields(返回字段)

    前言 通过我发表的博文可知最近一段时间会将持续讲解EntityFramework Core特性,在此之前我提到过Backing Fields,回头翻了翻感觉写的还不够好,于是乎再来讲解一番,也是自己再 ...

  8. ORACLE常用数据库字段类型

    ORACLE常用数据库字段类型   常用的数据库字段类型如下:   字段类型 中文说明 限制条件 其它说明  CHAR 固定长度字符串 最大长度2000 bytes     VARCHAR2 可变长度 ...

  9. MySQL常用的数据类型和字段属性

    数据类型 数值 tinyint 十分小的数据 1个字节 smallint 较小的数据 2个字节 mediumint 中等大小的数据 3个字节 int 标准的整数 4个字节 常用 bigint 较大的数 ...

随机推荐

  1. 简化可视SLAM应用程序的开发

    简化可视SLAM应用程序的开发 Easing the development of visual SLAM applications 同步定位和映射(SLAM)描述了一个设备(如机器人)使用传感器数据 ...

  2. halcon——缺陷检测常用方法总结(频域空间域结合)

    摘要 缺陷检测是视觉需求中难度最大一类需求,主要是其稳定性和精度的保证.首先常见缺陷:凹凸.污点瑕疵.划痕.裂缝.探伤等. 缺陷检测算法不同于尺寸.二维码.OCR等算法.后者应用场景比较单一,基本都是 ...

  3. python应用_读取Excel数据列表输出【一】

    python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式. 1.准备Excel数据如下: 2.下面主要是对Excel数据读取后以双列表(每一行是一个用例为一个列表,再一个个案例组 ...

  4. Python字符与字节新编

    字符 字符是一个信息单位,简单来讲就是一个字母.数字.标点符号.汉字等. 字符的最佳定义是Unicode字符: 它是一个全球化的标准,能表示世界上所有语言的字符.Unicode字符的标识(码位)是以4 ...

  5. NX二次开发-获取WCS坐标系的原点坐标和矩阵标识

    函数:UF_CSYS_ask_csys_info() 函数说明:获取工作坐标系对象的标识符. 用法: #include <uf.h> #include <uf_csys.h> ...

  6. Pytest学习笔记2-setup和teardown

    前言 我们在做自动化的时候,常常有这样的需求: 执行每一条用例时,都重新启动一次浏览器 每一条用例执行结束时,都清除测试数据 在unittest中,我们可以使用 setUp() 和 tearDown( ...

  7. C#《大话设计模式》之原型模式学习日记

    class Program { static void Main(string[] args) { Resume a = new Resume("大鸟"); a.SetPerson ...

  8. canvas小画板——(3)笔锋效果

    画线准备 准备一个canvas <canvas id="canvasId" width="1000" height="800"> ...

  9. zookeeper使用教程

    Zookeeper 1.       Zookeeper概述 1.1 概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. 1.2 特点 1)Zookeeper: ...

  10. 『动善时』JMeter基础 — 50、使用JMeter测试WebSocket接口

    目录 1.什么是WebSocket接口 2.为什么需要WebSocket 3.测试WebService接口前的准备 4.WebSocket Sampler组件界面详解 5.使用JMeter测试WebS ...