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/

  • 相关阅读:
    《Microsoft Sql server 2008 Internals》读书笔记第十一章DBCC Internals(2)
    《Microsoft Sql server 2008 Internals》读书笔记第十一章DBCC Internals(9)
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(10)
    CKEditor在asp.net环境下的使用一例
    《Microsoft Sql server 2008 Internals》读书笔记第五章Table(7)
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(11)
    千万数据的连续ID表,快速读取其中指定的某1000条数据?
    javascript中的float运算精度
    .Net与Java的互操作(.NET StockTrader微软官方示例应用程序)
    《Microsoft Sql server 2008 Internals》读书笔记第十一章DBCC Internals(6)
  • 原文地址:https://www.cnblogs.com/odoo14/p/14033553.html
Copyright © 2011-2022 走看看