### 外键对象设置为不可点击
```
<field name="master" options="{'no_open': True}"/>
```
### 列表页不显示创建按钮
```
<tree create="false" string="Apps">
```
### 表单页面不显示创建、编辑按钮
```
<form create="0" edit="0" string="Module" ... ...
**act_window** XML属性大全
```
<record id="srm_material_action_320" model="ir.actions.act_window">
<field name="name">物料</field>
<field name="res_model">srm.material</field ... ...
### 概述
Odoo 是一个典型的单页应用(SPA),其包含了丰富的前端交互形式,如果我们用好了他的内置的一些js对象,可以为我们实现一些灵活交互功能提供极大帮助,Odoo前端对象基本都集中在odoo、openerp两个命名空间下,下面列举一些常见的用法
### 遮罩提示
打开遮罩
```
odoo.__DEBUG__.services['web.framework'].blockUI()
` ... ...
### 查看有哪些扩展的命令
执行```python manage.py```Django 会把所有commands 都列出来,其中 xadmin 类别下即为扩展的所有的命令
### newapp
该命令用于创建一个新的 Django app,默认生产的代码会放在执行命令的工作路径下(可根据需要转移的适当的目录下),里面包含 DjangoX 推荐的基础目录结构,示例
```
python man ... ...
Odoo 模块开发规范常见约定
### import 尽量用相对路径
如在 models/__init__.py 中
```
from . import product_category
```
### 模型定义方面的约定
比如模块名wechat,模型名为“用户标签”,我们可以这样定义
文件名 models/user_tag.py
```
class UserTag(models.Mode ... ...
Odoo 交互式命令行 shell 的使用
在做Odoo开发时经常会希望有个类似Django shell的一个交互式命令行模式去调试研究Odoo内置的api函数或对象,其实Odoo官方内置shell的支持,运行方式如下:
```
python odoo-bin.py shell -c odoo.conf -d db_name
```
执行后Odoo会启动一个实例加载一些全局的注册,同时会构建一个 ... ...
Odoo 常用的一些内置对象
### 统一的时间输出格式
```
from odoo.tools import
nowdt.strftime(DEFAULT_SERVER_DATETIME_FORMAT)
``` ... ...
巧用 Odoo act_window 的 flags实现一些个性化的视图控制
```
'flags': {
'sidebar': False, //是否显示sidebar区域(主要为action按钮)
'pager': False, //是否显示分页组件
'initial_mode': 'edit', // 进入时的默认视图模式
... ...
Odoo 前端对象 options 包含的属性或成员如下:

在视图xml中可以通过如下方式来配置定制 option
```
<field name="context">{ "flags": {"selectable": False} }</field>
``` ... ...