之前我们已经讲解了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_

odoo ORM研究3 - odoo fields常用的字段属性相关推荐

  1. oracle,mysql常用基本操作 字段属性

    1.Oracle 1.向数据表添加注释及查询表注释 SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME='表名'; --查询注释 COMMENT ONTA ...

  2. odoo ORM中的filed的关系映射的使用详解1

    前言 前面我们详细讲解了odoo ORM中fields中的常见属性的使用,根据不同的属性可以对字段进行不同的限制操作,比如readonly只读,store是否存储到数据库.今天我们继续研究ORM中的关 ...

  3. Odoo二次开发------Odoo常用字段类型

    版权声明:本文由神州数码云基地团队整理撰写,若转载请注明出处. 大家好.本篇文章主要讲述的内容是Odoo常用字段类型. 本文将从Odoo模型概述.Odoo的常规字段.自动字段和保留字段.常用字段属性. ...

  4. Odoo | 基础 | 初识系统-ORM之字段属性对象Field

    字段属性对象Field Model的字段属性对应数据表中的相应字段,pg表中不同的字段有不同类型,Odoo也为其封装了相应的类型对象 Field类型的属性: type = None 字段类型 rela ...

  5. 3.odoo的学习(odoo中的视图:tree视图、form视图、search视图)

    目录 1.什么是视图 2.视图的声明方式 3.tree视图 4.form视图 5.search视图 6.优先级 1.什么是视图 在Odoo中,视图(view)定义了模型记录的显示方式. 每种类型的视图 ...

  6. Odoo快速部署 附Odoo的Docker启动脚本

    Odoo快速部署 附Odoo的Docker启动脚本 前置条件 请先安装好docker和dokcer-compose docker-compose.yml version: '2' services:w ...

  7. Odoo 模型、py字段属性、view字段属性使用

    数据模型的设计: 区分实体模型.瞬态模型.抽象模型. 实体模型:数据需要持久化存储在数据库中. 瞬态模型:向导,临时数据,不需要持续化在数据库中的数据. 抽象模型:定义的底层模型.供其他实体模型继承的 ...

  8. django中Models常用的字段及属性介绍

    模型类 介绍 每个模型类都可以被映射为数据库中的一个数据表,类类属性被映射为数据字段,除此之外,数据库表的主键.外键.约束等也通过类属性完成定义 模型类属性 属性 描述 AutoField AutoF ...

  9. 第60天:js常用访问CSS属性的方法

    一. js 常用访问CSS 属性的方法 我们访问得到css 属性,比较常用的有两种: 1. 利用点语法  box.style.width      box.style.top     点语法可以得到 ...

最新文章

  1. javaweb:servlet
  2. JSON.stringify()方法
  3. 禁用Cookie在web浏览器中读取/写入c#应用程序
  4. windows PHP Cli模式下配置
  5. mysql proxy 管理_ProxyMySQL的Admin管理接口
  6. 【算法竞赛学习】AI助力精准气象和海洋预测
  7. maven依赖 spark sql_window环境运行spark-xgboost 8.1踩到的坑
  8. 2021-08-21
  9. RHEL 6.2 Error: Cannot create GC thread. Out of system resources.
  10. burp放包_详解BurpSuite软件 请求包 HTTP (9.23 第十天)
  11. 莫烦python进化算法_使用遗传算法解决TSP问题(莫烦python 学习笔记)
  12. CME上位机控制Copley驱动MAXON电机
  13. Tags From Sina Micro-Blog
  14. Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java16 的新特性
  15. Google提供Fastboot和ADB单独下载服务(转载)
  16. 真正程序员的工资是怎样的?
  17. win10 无法安全地连接到此页面 TLS安全设置未设置为默认 该怎么办? 无法访问此页面
  18. 【linux】循序渐进学运维-基础篇-修复文件系统实战
  19. Mysql数据库管理系统原理及基本操作
  20. Golang并发模型:轻松入门流水线FAN模式

热门文章

  1. 英伟达发布的系统级芯片orin
  2. ps语义分割_图像语义分割训练经验总结--图像语义分割
  3. Hadoop集群启动和停止方法
  4. vue去除富文本编辑器引起的<p>等标签
  5. ecshop支付插件开发
  6. Redis 主从机制
  7. rails 自定义主键_带有Rails 6 Webpacker和turbolink的自定义和第三方javascript指南
  8. 负数byte转为int
  9. Word2Vec原理之层次Softmax算法(转)
  10. 闲鱼引流是怎么操作的?关键是你需要什么流量