zoukankan      html  css  js  c++  java
  • Odoo开发教程3-为表单视图添加字段

    我们已经为 partner 模型创建了新字段,但对用户仍不可见,要实现这点我们还要在相应的视图中进行添加操作。再回到前述的 res.partner 模型详情页,点击 Views 标签,我们就可以看到模块的各个 view 定义。正如所见,每个视图都是一条数据库记录,修改或添加视图记录即时生效,在下一次加载视图时即可见:

    表单视图添加字段

    视图列表中有一些需要注意的事项,我们看到有不同的视图类型(View Type),如表单视图(Form)、树状列表视图(Tree)、搜索视图(Search)和看板视图(Kanban)。搜索视图指的是右上角搜索框中的过滤选项。其它视图的数据展示方法也各不相同,基本的类型有列表视图和表单视图(用于查看详细信息)。

    “ 小贴士:树状视图(Tree) 和 列表视图(List) 实为同一视图,实际上 Odoo 中的为列表视图,树状视图的名称是由历史原因产生的 – 过去列表视图是以树状层级结构来进行展示的。”

    可以看到同一视图类型存在多个定义,通过 View Type 进行排序可以更清晰地看出。每种视图类型(如表单视图)可以有一个或多个 base 视图定义(包含空的继承视图字段)。菜单项使用窗口动作(Window Action)可以指定要用到的 base 视图,如果没有定义,将使用排序值(Sequence)最低的,因而可将其视为默认视图。 点击视图,可以在表单中看到包含排序值在内的所有详情

    每个 base 视图都可以有多个扩展,称为继承视图。每个继承视图可以对 base 视图添加修改,如对已有表单添加字段。
    “ 小贴士:继承视图自身也可以被其它视图继承,这时最外层继承在内层继承执行后作用于base 视图。”
    res.partner 模型会包含众多的视图定义,因为类似我们的很多应用都需要对其进行扩展。一个替代方法是进入我们需要扩展的某一具体视图,使用开发者工具菜单对其进行编辑。这也可用于了解某一视图在用户界面的某处被使用了。下面我们就来进行操作:
    1. 点击 Contacts 应用显示联系人名片列表,然后点击任意名片进入相应的表单视图:
    2.在表单视图界面,点击开发者工具菜单(右上角调试图标)并选择编辑视图(EditView:Form),这时可以看到与前述模型页面相同的视图详情表单,但展示在实际定义使用base 视图之上。也就是 res.partner.form 视图,通过 External ID 可以查看模块所有者。本处为 base.view_partner_form,所以我们知道这个视图属于 base 模块。在 Architecture字段中,我们可以看到 base 视图定义的 XML 代码。我们可以在这里编辑视图结构并添加
    3.使用继承视图标签我们可以为 base 视图添加扩展视图:
    I. 首先我们需要在原始视图选择一个元素作为扩展点,我们可以通过查看 base 视图的结构选择一个包含 name 属性的 XML 元素,大多数情况选择的是一个元素,此处我们选择元素
    II. 现在,点击开发者工具菜单,然后点击编辑视图(Edit View:Form),选择继承视图(Inherited Views)标签回到前述的界面,然后点击最下方的 Add a line 链接
    III. 此时会弹出名为 Create Views which inherit from this one 的窗口,填入如下内容
    ⚫ View Name: Contacts – Custom “Is Work Team” flag
    ⚫ Architecture:输入如下 XML 代码
    <field name="category_id" position="after">
    <field name="x_is_work_team" />
    </field>

    ⚫ 其它重要字段,如 Model, View Type 和 Inherited View 使用默认值即可
    IV. 此时点击 Save & Close 按钮,然后在 Edit View: Form 窗口点击 Save 按钮在保存修改后重载联系人表单视图页面即可查看到变化,在大数浏览器中可以使用F5 快捷键来重载页面。这时打开任意联系人名片,可以看到右侧 Tags 字段下会多出一个新字段

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

  • 相关阅读:
    通俗的讲解下傅立叶分析和小波分析之间的关系
    Kalman滤波
    K-L变换和 主成分分析PCA
    c语言字符串库函数#include<string.h>
    c语言字符类别测试库函数#include<ctype.h>
    c语言之extern关键字
    陈正冲老师讲c语言之声明和定义的区别
    陈正冲老师讲c语言之const关键字
    陈正冲老师讲c语言void关键字
    陈正冲老师讲c语言之内存的申请malloc() 和释放free()
  • 原文地址:https://www.cnblogs.com/odoo14/p/12629135.html
Copyright © 2011-2022 走看看