• Odoo安装教程12-创建新的插件模块之设置视图层第一讲


    视图层

    视图层为用户界面的描述,视图用 XML 定义,由网页客户端框架生成数据感知的 HTML 视图。可用菜单项开启渲染视图的操作。比如, Users 菜单项处理一个同样名为 Users 的操作,然后渲染一系列视图。有多种可用视图类型,如 list(因历史原因也称为 tree)列表视图和 form 表单视图,以及包含过滤项的右上角搜索框由 search 搜索视图定义。
    Odoo 开发指南写到定义用户界面的 XML 文件应放在 views/子目录中。接下我们来创建图书应用的用户界面。下面我们会逐步改进并更新模块来使更改生效。可以使用–dev=all 参数来在开发时频繁的升级。使用该参数,视图定义会在 XML 文件中直接读取,无需升级模块即可在Odoo 中即刻生效。
    “ 小贴士: 如果因 XML 错误升级失败,不必惊慌!仔细阅读输出日志的错误信息,就可以找到问题所在。如果觉得麻烦,注释掉最近编辑的 XML 版块或删除__manifest__.py 中 该 XML 文件,重新更新,服务应该就可正确启动了。 ”

    添加菜单项

    现在有了存储数据的模型,需要添加到用户界面中。首先要做的就是添加相应菜单项。编辑views/library_menu.xml 文件,在 XML 元素中定义菜单项以及执行的操作:

    <!-- Action to open the Book list -->
    <act_window id="action_library_book"
    name="Library Books"
    res_model="library.book"
    view_mode="tree,form"
    />
    <!-- Menu item to open the Book list -->
    <menuitem id="menu_library_book"
    name="Books"
    parent="menu_library"
    action="action_library_book"
    />

    用户界面,包括菜单项和操作,存储在数据表中。在安装或升级插件模块时, XML 文件会将这
    些定义载入数据库中的数据文件。以上代码是一个 Odoo 数据文件,表示两条添加到 Odoo 的记录:
    ⚫ 元素定义客户端窗口操作,它按顺序通过启用列表和表单视图打开
    library.book 模型
    ⚫ 定义一个调用前面定义的 action_library_book 操作的顶级菜单项
    现在再次升级模块来让修改生效。然后刷新浏览器页面,就可以看到 Library 顶级菜单,并包含
    一个子菜单项。点击该菜单会显示一个基本列表视图,记录可通过一个自动生成的表单视图进行编
    辑。点击 Create 按钮即可查看,虽然我们还没有定义用户界面视图,自动生成的列表视图和表单视图也可以使用,允许我们马上
    编辑数据。

    创建表单视图

    所有的视图都存储在数据库 ir.ui.view 模型中。为模型添加视图,我们在 XML 文件中声明元素来描述视图,在模块安装时 XML 文件会被载入数据库。
    添加 views/book_view.xml 文件来定义表单视图:

    <?xml version="1.0"?>
    <odoo>
    <record id="view_form_book" model="ir.ui.view">
    <field name="name">Book Form</field>
    <field name="model">library.book</field>
    <field name="arch" type="xml">
    <form string="Book">
    <group>
    <field name="name" />
    <field name="author_ids" widget="many2many_tags" />
    <field name="publisher_id" />
    <field name="date_published" />
    <field name="isbn" />
    <field name="active" />
    <field name="image" widget="image" />
    </group>

    </form>
    </field>
    </record>
    </odoo>

    这个 ir.ui.view 记录有三个字段值: name, model 和 arch。另一个重要元素是记录 id,它定义
    了一个可在其它记录中引用的 XML ID 标识符。这是 library.book 模型的视图,名为 BookForm。这个名称仅用于提供信息,无需唯一,但应易于分辨所引用的记录。其实可以完全省略name,这种情况下会自动按模型名和视图类型来生成。
    最重要的字段是 arch,它包含了视图的定义,在 XML 代码中我们做了高亮显示(博客主题问题无法显示)。

    标签定义了视图类型并包含视图结构。
    此处
    中包含了要在表单中显示的字段。这些字段会自动使用默认的组件,如 date 字段使用日期选择组件。有时我们要使用不同的组件,如以上代码中的 author_ids 使用了显示标签列表的组件, image 字段使用处理图片的相应组件。有关视图元素的详细说明请见第十章后台视图。
    不要忘记在声明文件的 data 中加入新建文件,否则我们的模块将无法识别到并加载该文件:

    'data': [
    'security/library_security.xml',
    'security/ir.model.access.csv',
    'views/library_menu.xml',
    'views/book_view.xml',
    ],

    要使修改载入 Odoo 数据库就需要更新模块。需要重新加载页面来查看修改效果,可以再次点
    击菜单项或刷新网页(大多数浏览器中快捷键为 F5)。

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

  • 相关阅读:
    BZOJ 1008: [HNOI2008]越狱
    BZOJ 1007: [HNOI2008]水平可见直线
    BZOJ 1005: [HNOI2008]明明的烦恼
    【LibreOJ10121】与众不同(RMQ,二分)
    【NOIP模拟】数字对(RMQ,二分)
    【POJ3264】Balanced Lineup(RMQ)
    【JZOJ4857】Tourist Attractions(Bitset)
    【BZOJ2330】糖果(差分约束系统,强连通分量,拓扑排序)
    C++对拍数据生成
    C++字符串读入
  • 原文地址:https://www.cnblogs.com/odoo14/p/12868025.html
Copyright © 2020-2023  润新知