• Odoo模块开发教程8-导入导出数据定义记录


    在 XML 中定义记录

    在 XML 文件中,每个元素有两个基本属性: id 和 model,并包含为对应列设置的值。 id 属性对应记录外部标识符, model 对应目标模型。 元素有几种分配值的方法,下
    面一起来看看

    直接为字段设置值

    元素的 name 属性标识要写入的字段。写入的值是元素内容: 字段开、闭标签之间的文本。对于 date 和 datetime,带有返回 date 或 datetime 对象表达式的 eval 属性可进行设
    置。 返回的” YYYY-mm-dd”和” YYYY-mm-dd HH:MM:SS”字符串会进行转化。对于布尔字段,” 0″ and “False”都会转换成 False,而任意非空值都会转换成 True。
    “ 注意: Odoo 10 的修改
    Odoo 10 中改进了从数据文件中读取布尔值 False 的方式。在老版本中,包含” 0″ and“False”在内的非空值都会转换成 True,直至 Odoo 9,布尔值仍需使用 eval 属性进行设置,如 eval=” False”。 ”

    通过表达式设置值

    设置字段值更复杂的方式是通过 eval 属性,它会运行 Python 表达式并将结果分配给字段。
    表达式通过 Python 内置的以及一些其它可创建表达式标识符的上下文求值。
    可使用如下 Python 模块来处理日期: time, datetime, timedelta 和 relativedelta。通过它们可以计算日期值,在演示和测试数据经常会用到,以让日期和模块安装日期较近。关于 Python模块更多这类知识,请参考官方文档。比如,把值设为前一天,可使用如下代码:
    <field name="date_published" eval="(datetime.now() + timedelta(-1))" />
    求值上下文还可使用 ref()函数,用于将外部标识符转换为对应的数据库 ID。这可用于为关联字段设置值。比如,可以使用它为 publisher_id 设置值:

    <field name="publisher_id" eval="ref('res_partner_packt')" />

    在 many-to-one 关联字段上设置值

    对于 many-to-one 关联字段,要写入的是关联记录的数据库 ID。在 XML 文件中,我们一般会知道记录的 XML ID,然后就需要把它转换成实际的数据库 ID
    一种方式是像前文那样使用带有 ref()函数的 eval 属性。更简单的替代方式是使用在元素中可用的 ref 属性,使用它设置 publisher_id many-to-one 字段的值,我们可以这么写:

    <field name="publisher_id" ref="res_partner_packt" />

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

  • 相关阅读:
    基于贝叶斯概率模型的单幅图像去运动模糊算法
    Hihocoder 1067 最近公共祖先二
    HDU 2855 Fibonacci Check-up 矩阵
    HDU 2276 Kiki & Little Kiki 2 矩阵
    HDU 3483 A Very Simple Problem 矩阵构造
    HDU 2807 The Shortest Path 矩阵 + Floyd
    HDU 5015 233 Matrix 矩阵快速幂
    ZOJ 3497 Mistwald 矩阵
    POJ 3233 Matrix Power Series 矩阵等比数列求和
    HDU 2157 How many ways?? 矩阵
  • 原文地址:https://www.cnblogs.com/odoo14/p/13071660.html
Copyright © 2020-2023  润新知