Odoo shell 提供了一个简便的操作 Odoo的交互界面,
从 odoo 9.0 开始就是标准功能,
无需安装第三方应用。

本文基于Odoo10 说明 Odoo Shell以及 Odoo ModelClass 、Model、model、recordset 之间的关系 [注意:大小写是有特殊含义]

Odoo Shell是
通过在 cli/command.py#commands{} 注册 Shell command 来实现的。

首先,Odoo支持的 command 都是基于 command 基类,而 command 基类
则通过

它的
元类
初始化的时候,
往 commands{} 注册支持的 command.

而 Shell command.

而从 Odoo 10 开始, Shell 支持
多种
终端,通过参数shell-interface 传递给Odoo shell,支持以下终端类型

  1. ipython
  2. ptpython
  3. bpython
  4. python,如果不指定,则使用Python

运行 Odoo shell

执行
命令 python odoo-bin shell -c ..\t.conf --shell-interface ipython

以 ipython 交互界面
运行 Odoo shell. 启动之后

出现 ipython 终端提示符

Odoo shell启动之后,只提供了
以下几个变量

变量

类型

env

odoo.api.Environment 对象

odoo

odoo 模块

openerp

odoo 模块

self

res.users(1,) 记录

registry 是 Odoo实例维护的信息中心,可以通过 env.registry 获取

通过 env.registry.models 可以
获取当前 Odoo实例
的模型列表,
它返回的结果是,ModelClass 和 Model 字典键值对,例如

查看下
常用的
模型,例如 product.product

product.product 是 ModelClass ; 而 odoo.api.product.product 则是 Model

也可以通过 env['product.product'] 获取 Model

而这个 Model 本身就是 odoo.api.product.product

再开看看 odoo.api.product.product 的基类

从注册表
获取 odoo.api.product.product 对应的 Model Class,
发现 product.product 是在所有
定义/扩展过 product.product 模型的
模型基础上
再组装出来的。

Odoo Shell 操作 Odoo 记录

查询产品

env['product.product'].search([])

遍历查看产品的名称

for prod in env['product.product'].search([]):

print prod.name

修改产品的属性

例如修改 id = 1 产品的名称

只要能取得模型,模型的一切方法都能调用,
标准的方法

方法

必要参数

选参

search

domain

search_count

domain

search_read

domain

browse

copy

copy_data

create

default_get

name_get

read

read_group

unlink

write

update

vals 字典

提示

Odoo 的模型其实是
转包过一次的,并不是 product.product,而是 odoo.api.product.product 而且 Model 是
通过 Model Class 来进行实例化出来的。

严格意义上来讲,在写Odoo 模型Model 时,其实是在
写 Model Class 的父类, 最终这些 父类会 汇总 派生出 Model Class,进而实例化为 model,而recordset 也是 Model Class 衍生出来的

Odoo Shell的更多相关文章

  1. 第九章 Odoo 12开发之外部 API - 集成第三方系统

    Odoo 服务器端带有外部 API,可供网页客户端和其它客户端应用使用.本文中我们将学习如何在我们的客户端程序中使用 Odoo 的外部 API.为避免引入大家所不熟悉的编程语言,此处我们将使用基于 P ...

  2. 第七章 Odoo 12开发之记录集 - 使用模型数据

    在上一篇文章中,我们概览了模型创建以及如何从模型中载入和导出数据.现在我们已有数据模型和相关数据,是时候学习如何编程与其进行交互 了.模型的 ORM(Object-Relational Mapping ...

  3. 【odoo14】odoo 14 Development Cookbook【目录篇】

    网上已经有大佬翻译过odoo12并且在翻译odoo14了.各位着急的可以自行搜索下... 这本书是为了让自己从odoo12转odoo14学习.也是为了锻炼下自己... odoo 14 Developm ...

  4. odoo 10.0部署shell

    环境ubuntu16+nginx+python2.7.12+postgresql9.5+odoo 10.0 community #!/bin/bash #author:guoyihot@outlook ...

  5. 第二章 Odoo的安装与部署

    Odoo的官方推荐是Ubuntu Server,所以,我们这里也以Ubuntu Server为例.当然,其他系统也是可以的,只不过安装起来相比Ubuntu 会显得稍微折腾,限于篇幅,本书不对其他系统的 ...

  6. 如何在CentOS 7.x中安装OpenERP(Odoo)

    各位好,这篇教程关于的是如何在CentOS 7中安装Odoo(就是我们所知的OpenERP).你是不是在考虑为你的业务安装一个不错的ERP(企业资源规划)软件?那么OpenERP就是你寻找的最好的程序 ...

  7. odoo.cli.main()做了什么?

    先把代码贴过来 def main(): args = sys.argv[1:] # The only shared option is '--addons-path=' needed to disco ...

  8. odoo.cli.main()指的是哪里?OpenERP的第二根线头儿

    接上回,odoo-bin中调用了odoo.cli.main(),去哪儿找? cli目录容易找 跟随__init__.py的脚步 import logging import sys import os ...

  9. Odoo启动过程

    [本文基于odoo9源码编写] odoo包含的服务有 db object report workflow web[wsgi] Odoo以wsgi 规范提供Web及Web服务db/object/repo ...

随机推荐

  1. Geometry shader总结

    什么是Geometry Shader GS存在于vertext shader和固定功能vertex post-processing stage之间,它是可选的不是必要的.GS的输入是单个primiti ...

  2. XHProf中文手册

    目录 导言 XHProf 概况 安装XHProf扩展 使用XHProf进行性能分析 设置XHProf用户界面 在生产环境中使用XHProf注意事项 轻量级采样模式 附加功能 信赖 鸣谢 导言 XHPr ...

  3. HTML。CSS浮动元素详解

    浮动定位是指 1.1将元素排除在普通流之外,即元素将脱离标准文档流 1.2元素将不在页面占用空间 1.3将浮动元素放置在包含框的左边或者右边 1.4浮动元素依旧位于包含框之内 2. 浮动的框可以向左或 ...

  4. DAO模式应用实例

    首先在数据库中建好一个表. 然后创建一个MsterDao类的接口 package com.beiwo.epte.dao; import com.beiwo.epte.entity.Master; pu ...

  5. uml的四种关系

    UML的四种常用关系: 泛化关系.关联关系.实现关系.依赖关系 其中泛化关系是指父类与子类之间的继承关系: 实现关系是指接口与实现类之间的关系: 依赖关系和关联关系的区别如下: 只要存在对象间的交互, ...

  6. ionic

    ionic是一个用来开发混合手机应用的,开源的,免费的代码库.可以优化html.css和js的性能,构建高效的应用程序,而且还可以用于构建Sass和AngularJS的优化.ionic会是一个可以信赖 ...

  7. ipv6过审函数

    int _ResolveIPv4Address(const char* ipv4_str, char* buffer, int bufferSize) { struct addrinfo hints, ...

  8. C#与Java的比较

    C#与Java的比较 写完后得知维基百科里有更加全面得多的比较: http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java NET(C#) ...

  9. 发邮件 和 excel导出中文文件名

    /** * 发邮件 * @param email * @param subject * @param body * @throws UnsupportedEncodingException */ pu ...

  10. 1全志 A20 camera移植

    转自 http://www.right.com.cn/forum/thread-146260-1-1.html   在Android4.0升级后,突然发现大量平台对Camera的支持均非常不好.要么C ...