zoukankan      html  css  js  c++  java
  • 星辉Odoo模型开发教程3-创建字段


    创建新模型后的第一步是添加字段。 Odoo 支持我们能想到的所有基本数据类型,如文本字符串、整型、浮点型、布尔型、日期、日期时间以及图片或二进制数据。下面就来看看 Odoo 中一
    些可用的字段类型吧。

    基本字段类型
    我们将为图书模型添加几种可用的字段类型,编辑 library_app/models/library_book.py 文件后 Book 类会长这样:
    class Book(models.Model):
    ...
    # String fields
    name = fields.Char('Title', required=True)
    isbn = fields.Char('ISBN')
    book_type = fields.Selection(
    [('paper', 'Paperback'),
    ('hard', 'Hardcover'),
    ('electronic', 'Electronic'),
    ('other', 'Other')],
    'Type')
    notes = fields.Text('Internal Notes')
    descr = fields.Html('Description')
    # Numeric fields:
    copies = fields.Integer(default=1)
    avg_rating = fields.Float('Average Rating', (3,2))
    price = fields.Monetary('Price', 'currency_id')
    currency_id = fields.Many2one('res.currency') # price helper
    # Date and time fields
    date_published = fields.Date()
    last_borrow_date = fields.Datetime(
    'Last Borrowed On',
    default=lambda self: fields.Datetime.now())
    # Other fields
    active = fields.Boolean('Active?', default=True)
    image = fields.Binary('Cover')
    # Relational Fields
    ...
    此处是 Odoo 中所带的非关联字段示例,每个字段都带有所需的位置参数。
    “ 小贴士: Python 中有两类参数:位置参数和关键字参数。位置参数需按指定顺序使用。例如, f(x, y)应以 f(1, 2)方式调用。关键字参数通过参数名传递。如同一个例子,可使用 f(x=1, y=2)
    甚至是 f(1, y=2)两种传参方式混用。更多有关关键字参数知识参见 Python 官方文档。 ”
    对于大多数非关联字段,第一个参数是字段标题,与字符串字段参数相对应。它用作用户界面标签的默认文本。这个参数是可选的,如未传入,会根据字段名将下划线替换为空格并将单词首字母大写来自动生成。以下为可用的非关联字段类型以及其对应的位置参数:
    ⚫ Char(string)是一个单行文本,唯一位置参数是 string 字段标签。
    ⚫ Text(string)是一个多行文本,唯一位置参数是 string 字段标签。
    ⚫ Selection(selection, string)是一个下拉选择列表。选项位置参数是一个[(‘value’ ,
    ‘Title’ ),]元组列表。元组第一个元素是存储在数据库中的值,第二个元素是展示在用户界面中的描述。该列表可由其它模块使用 selection_add 关键字参数扩展。
    ⚫ Html(string)存储为文本字段,但有针对用户界面 HTML 内容展示的特殊处理。出于安全考虑,该字段会被清洗,但清洗行为可被重载。
    ⚫ Integer(string)仅需字段标题字符串参数。
    ⚫ Float(string, digits)带有第二个可选参数 digits,该字段是一个指定字段精度的(x,y)元组,
    x 是数字总长, y 是小数位。
    ⚫ Monetary(string, currency_field)与浮点字段类似,但带有货币的特殊处理。第二个参数
    currency_field 用于存储所使用货币,默认应传入 currency_id 字段。
    ⚫ Date(string)和 Datetime(string)字段只需一个字符串文本位置参数。
    ⚫ Boolean(string)的值为 True 或 False,可传入一个字符串文本位置参数。
    ⚫ Binary(string)存储文件类二进制文件,只需一个字符串文本位置参数。它可由 Python 使
    用 base64 编码字符串进行处理。
    “ 注意: Odoo 12 的修改
    Date 和 Datetime 字段现在 ORM 中作为日期对象处理。此前的版本中作为文本字符串处理,进
    行操作时需与 Python 日期对象间进行转换。 ”
    文本字符串: Char, Text 和 Html 有一些特有属性:
    ⚫ size (Char)设置最大允许尺寸。无特殊原因建议不要使用,例如可用于带有最大允许长度的
    社保账号。
    ⚫ translate 使用得字段内容可翻译,带有针对不同语言的不同值。
    ⚫ trim 默认值为 True,启动在网络客户端中自动去除周围的空格。可通过设置 trim=false
    来取消。
    “ 注意: Odoo 12 的修改
    trim 字段属性在 Odoo 12 中引入,此前版本中文本字段保存前后的空格。 ”
    除这些以外,还有在后面会介绍到的关联字段。不过, 我们还要先了解下有关字段属性的其它知识。

    更多教程:https://www.erpdaxue.cn/odoo/odoo-teach/odoo12-teach/

  • 相关阅读:
    inline, block, and inline-block
    分布式/集群/负载均衡的基本概念与区别
    Java获取当前进程的所有线程
    关于测试Windows电脑端口的命令 —— telnet用法
    关于 ArtifactTransferException: Failure to transfer
    Maven项目报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    Java去除掉HTML里面所有标签的两种方法——开源jar包和自己写正则表达式
    SQL(基于MySQL)——LIMIT用法
    毕业设计进度:2月13日
    毕业设计进度:2月12日
  • 原文地址:https://www.cnblogs.com/odoo14/p/14033553.html
Copyright © 2011-2022 走看看