您的位置:首页 > 其它

odoo12 视图使用方式(一)

2019-03-14 11:10 92 查看

odoo12 视图使用方式(一)

视图定义了模型数据如何显示, 每种类型的视图代表一种数据可视化模式,基本的视图定义 一个
视图是以一条ir.ui.view模型数据的形式定义的。可以用于存储业务数据,用于向用户展现数据以
及输入数据等。View的构成包括field,group,button,page,notebook,tree,form,footer等
用户界面设计元素。

通用结构

name 当前视图的描述
model 视图链接的模型
priority 优先级,客户端请求视图时会通过id或者model,type进行搜索,对于按照model和type搜
索的情况会将所有匹配model和type的数据全部搜索出来,然后会将该属性最小值的视图
返回
arch 视图布局的描述
groups_id:权限组,
inherit_id 当前视图的父及视图,一般用于继承或修改父视图,常用于添加字段或
修改属性,继承规范后续介绍
banner_route 加载视图时的路由地址,在对应的路由方法返回的json串需要包含
key html,只有扩展tree,kanbn,form等属性时才可以使用该属性,例如
.. code-block:: xml
<tree banner_route="/module_name/hello" />
.. code-block:: python
class MyController(odoo.http.Controller):
@http.route('/module_name/hello', auth='user', type='json')
def hello(self):
return {
'html': """
<div>
<link href="/module_name/static/src/css/banner.css"
rel="stylesheet">
<h1>hello, world</h1>
</div> """
  1. Tree视图
    以列表形式展示多条数据,根元素是,其中包裹任意field,每一个field就是列
    表中的一列。包含以下属性:
    editable 该属性可以控制视图本身就可以编辑,包含两个选项值top/bottom,用于控
    制新纪录位于列表的
    底部或者顶部
    default_order 默认排序规则
    colors 被decoration-{KaTeX parse error: Expected 'EOF', got '}' at position 5: name}̲代替 fonts 被…name}代替
    {$name} 可选值 bf (‘font-weight:bold’)
    It(‘font-style’:italic)
    颜色标识:-danger,-primary,-success,-info,-warning

    create,edit,delete:表示该视图下的记录是否可以创建,编辑,删除(属性值只能为
    true/false),否则不生效
    limit:单页默认显示数据个数
    String 显示名称
    field 定义应在当前记录上显示的列
    Name 要在当前模型中显示的列的名称(每个视图中只能别使用一次)
    String 当前列字段的名称
    Invisible 获取并存储该字段,但不显示
    Groups 权限组,表示哪些组可以看到该字段
    Widget 挂件,系统挂件主要有以下:
    Progressbar, 进度条挂件
    Many2onebutton (后续了解)
    Handle 拖动挂件,只能用于sequence字段,如下图:


    Sum,avg 统计函数功能,求总和或平均值
    attrs 基于记录值得动态属性,可以根据字段值进行属性控制,包invisible,readonly

    control 为当前视图定义客户端控制作用于one2many字段即form下的tree,除了一
    下子元素不支持任务其他属性
    Create 会在当前列表视图下增加一个添加记录的元素,当定义了该元素时,会重
    写”添加一行”按钮
    String(必输),标识当前按钮的显示文本
    Context上下文当前元素里的上下文会和当前记录本身的上下文合并,可以用来重写
    默认值
    例如产品的行视图,设置more显示类别字段

    … code-block:: xml

    <control>
    <create  string="Add a product"/>
    <create string="Add a section" context="{'default_display_type': 'line_section'}"/>
    <create string="Add a note" context="{'default_display_type': 'line_note'}"/>
    </control>

    Button :
    icon 显示按钮的图标
    string 显示按钮的文本内容
    type:按钮的类型
    Object: 当类型为object是,点击该按钮会调用方法,该按钮的名称为方法名,可以调用当前记录以及上下文,该模式下按钮属性args,可以为按钮方法提供json格式的参数
    Actoin: 当类型为action时,点击该按钮会调用对应的动作,当前动作的name是对应的数据库动作的id,从上下文中可以拿到当前模型(active_model)以及数据(active_ids),

2.Form视图
Form视图时用来显示单一记录的表单视图,根元素是,视图由普通的html和其他结构组件组成,包含以下组件:
notebook 定义选项卡部分,每一个tab页可以定义page子元素,每个page元素可以 使用以下属性。
String: 表示page页签的显示文本
Attrs:基于记录值得动态属性
group 用于在表单中定义列布局,默认情况下组定义两列,一列显示label(字段文本名称),另外一列显示字
段value,可以使用col定义group中显示的列数
String:组标题
newline 仅可以在group元素中使用,表示提前结束当前行并立即切换到新行
separator 水平间隔,如果 有string属性则表示标题
sheet 可以直接作为form的子元素使用,以便获得更窄的布局
header 和sheet匹配使用,类似于表头属性,一般用于显示工作流按钮或状态挂件
button:部分属性可参看tree视图中的介绍,在form视图中可以添加以下属性
Special 在打开的form弹出框中的按钮中可以为该属性指定以下值save/cancel,当指定为save时,会保存该记录并关闭对话框,当指定为cancel时不保存记录但关闭对话框
field 渲染当前记录的单个字段,可以使用以下属性
Name:需要渲染的字段名称
Widget 挂件:可参考tree视图字段挂件,特殊挂件有clickable
options 属性值json对象,例如

class属性,渲染元素的html class,在odoo中已经封装好的有以下
oe_inline 行内
oe_left 靠左
oe_right 靠右
oe_read_only 只有在读时显示,oe_edit_only:编辑时显示
attrs 基于记录值得动态属性
domain 该字段值得搜索条件
context 上下文属性
readonly 只读属性
required 是否必输
nolabel 不会显示字段的文本显示信息
placeholder 填写提示
业务视图
一般来说业务视图包含以下部分,状态导航栏(header),sheet页部分(moddle),视图结构如下,状态栏如下图

<form>
<header> ... content of the status bar  ... </header>
<sheet>  ... content of the sheet       ... </sheet>
<div class="oe_chatter"> ... content of the bottom part ... </div>
</form>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: