Odoo17入门教程第六章 UI

这篇具有很好参考价值的文章主要介绍了Odoo17入门教程第六章 UI。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

现在我们已经创建了新模型及其 相应的,是时候了 与用户界面交互。

在本章结束时,我们将创建几个菜单以访问默认列表 和窗体视图。

数据文件 (XML)

参考:与此主题相关的文档可以在数据文件中找到。

在第五章:安全性-简介中,我们通过 CSV 文件添加了数据。CSV 当要加载的数据具有简单的格式时,format 很方便。当格式更复杂时 (例如,加载视图或电子邮件模板的结构),我们使用 XML 格式。例如 此帮助字段包含 HTML 标记。虽然可以通过 CSV 文件加载此类数据,但它更多 方便使用XML文件。

XML文件必须添加到与CSV文件相同的文件夹中,并在__manifest .py中进行类似的定义。在安装或更新模块时,数据文件的内容也会按顺序加载,因此针对CSV文件的所有备注对XML文件都适用。当数据链接到视图时,我们将它们添加到views文件夹中。

在本章中,我们将通过XML文件加载我们的第一个动作和菜单。操作和菜单是 数据库中的标准记录。

注意

当性能很重要时,CSV 格式优先于 XML 格式。Odoo就是这种情况 其中加载 CSV 文件比加载 XML 文件快。

在Odoo中,用户界面(操作,菜单和视图)主要通过创建来定义 以及编写 XML 文件中定义的记录。常见的模式是“菜单”>“操作”>“视图”。 要访问记录,用户需要通过多个菜单级别导航;最深的层次是 触发记录列表打开的操作。

行动

参考:与此主题相关的文档可在操作中找到。

注意

目标:在本节结束时,应在系统中加载一个操作。我们不会看到 UI中的任何内容,但文件应加载到日志中:

INFO rd-demo odoo.modules.loading: loading estate/views/estate_property_views.xml

可以通过三种方式触发操作:

  1. 通过单击菜单项(链接到特定操作)

  2. 通过单击视图中的按钮(如果这些按钮连接到操作)

  3. 作为对对象的上下文操作

在本章中,我们将只介绍第一种情况。第二种情况将在后面的章节中介绍,而最后一种情况是 高级主题。在我们的房地产示例中,我们希望将菜单链接到模型,以便我们能够创建新记录。该操作可以被视为菜单之间的链接 和模型。estate.property

我们的基本行动是:test_model

<record id="test_model_action" model="ir.actions.act_window">
    <field name="name">Test action</field>
    <field name="res_model">test_model</field>
    <field name="view_mode">tree,form</field>
</record>
  • id是外部标识符。它可用于引用记录 (不知道其数据库内标识符)。

  • model具有固定值 ir.actions.act_window(Window Actions (ir.actions.act_window))。

  • name是操作的名称。

  • res_model是应用该操作的模型。

  • view_mode是将可用的视图;在本例中,它们是列表(树)和表单视图。 我们稍后会看到,可以有其他视图模式。

在Odoo中随处可见的例子,但这是简单操作的一个很好的例子。请注意 XML 数据文件的结构,因为您将 在以下练习中需要它。

锻炼

添加操作。

Create the estate_property_views.xml file in the appropriate folder and define it in the __manifest__.py file.

Create an action for the model estate.property.

菜单

参考:可以在快捷方式中找到与此主题相关的文档。

注意

目标:在本节结束时,应创建三个菜单,默认视图为 显示:

odoo17 xml开发文档,odoo官方文档翻译,学习,ui

odoo17 xml开发文档,odoo官方文档翻译,学习,ui

odoo17 xml开发文档,odoo官方文档翻译,学习,ui

为了降低声明菜单(ir.ui.menu)并将其连接到相应操作的复杂性,我们可以使用<menuitem>快捷方式。

test_model_action的基本菜单是:

<menuitem id="test_model_menu_action" action="test_model_action"/>

菜单test_model_menu_action链接到动作test_model_action,而动作链接到模型test_model。如前所述,操作可以看作是菜单和模型之间的链接。

但是,菜单始终遵循体系结构,在实践中有三个级别的菜单:

  1. 根菜单,显示在应用程序切换器中(Odoo社区应用程序切换器是一个 下拉菜单)

  2. 第一级菜单,显示在顶部栏中

  3. 操作菜单

    odoo17 xml开发文档,odoo官方文档翻译,学习,ui

    odoo17 xml开发文档,odoo官方文档翻译,学习,ui

定义结构的最简单方法是在XML文件中创建它。test_model_action的基本结构是:

<menuitem id="test_menu_root" name="Test">
    <menuitem id="test_first_level_menu" name="First Level">
        <menuitem id="test_model_menu_action" action="test_model_action"/>
    </menuitem>
</menuitem>

第三个菜单的名称取自 action

锻炼

添加菜单。

Create the estate_menus.xml file in the appropriate folder and define it in the __manifest__.py file. Remember the sequential loading of the data files ;-)

Create the three levels of menus for the estate.property action created in the previous exercise. Refer to the Goal of this section for the expected result.

重新启动服务器并刷新浏览器1.您现在应该看到菜单, 您甚至可以创建您的第一个房地产广告!

字段、属性和视图

注意

目标:在本节末尾,销售价格应为只读,数字 的卧室数和可用日期应具有默认值。此外,售价 并且不会在重复记录时复制可用日期值。

odoo17 xml开发文档,odoo官方文档翻译,学习,ui

保留字段active和state被添加到estate.property模型。

到目前为止,我们只在房地产广告中使用了通用视图,但是 在大多数情况下,我们希望对视图进行微调。Odoo 中有许多微调,但是 通常,第一步是确保:

  • 某些字段具有默认值

  • 某些字段是只读的

  • 复制记录时,某些字段不会复制

在我们的房地产商业案例中,我们希望以下几点:

  • 售价应为只读(稍后会自动填写)

  • 复制记录时,不应复制可用日期和销售价格

  • 默认卧室数应为 2

  • 默认可用日期应为 3 个月后

一些新属性

在进一步进行视图设计之前,让我们先回到模型定义。我们看到一些属性,比如required=True,会影响数据库中的表模式。其他属性将影响视图或提供默认值。

锻炼

向字段添加新属性。

找到适当的属性更改为:

  • 将销售价格设置为只读

  • 防止复制可用日期和销售价格值

重新启动服务器并刷新浏览器。您不应能够设置任何销售价格。什么时候 复制记录时,可用日期应为空。

默认值

任何字段都可以被赋予默认值。在字段定义中,添加default=X选项,其中X要么是Python文字值(boolean, integer, float, string),要么是接受模型并返回值的函数:

name = fields.Char(default="Unknown")
last_seen = fields.Datetime("Last Seen", default=fields.Datetime.now)

name字段默认值为“Unknown”,而last_seen字段将被设置为当前时间。

锻炼

设置默认值。

添加适当的默认属性:

  • the default number of bedrooms is 2

  • the default availability date is in 3 months

检查默认值是否按预期设置。

保留字段

参考:与本主题相关的文档可在保留字段名称中找到。

为预定义的行为保留了一些字段名称。它们应该在 在需要相关行为时进行建模。

锻炼

Add active field.

Add the active field to the estate.property model.

重新启动服务器,创建一个新属性,然后返回到列表视图…该属性将不会被列出!active是具有特定行为的保留字段的一个示例:当一条记录具有active=False时,它将自动从任何搜索中删除。要显示创建的属性,您需要专门搜索非活动记录。

odoo17 xml开发文档,odoo官方文档翻译,学习,ui

锻炼

为active字段设置默认值。

为活动字段设置适当的默认值,使其不再消失。

注意,默认的active=False值被分配给所有现有的记录。

锻炼

添加state 字段。

Add a state field to the estate.property model. Five values are possible: New, Offer Received, Offer Accepted, Sold and Canceled. It must be required, should not be copied and should have its default value set to ‘New’.

Make sure to use the correct type!

state稍后将用于多个 UI 增强功能。

现在,由于默认视图,我们能够与 UI 进行交互,下一步是 显而易见:我们想要定义自己的观点。

1

由于 Web 客户端保留了各种菜单的缓存,因此需要刷新 和出于性能原因的视图。文章来源地址https://www.toymoban.com/news/detail-856042.html

到了这里,关于Odoo17入门教程第六章 UI的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Git 入门教程】第六节、Git高级操作

    Git是一种非常强大的分布式版本控制系统,可以帮助开发者轻松地管理和协调代码库。在本文中,我们将介绍一些Git高级操作,包括如何管理Git仓库、标签、子模块和忽略文件。 Git提供了许多命令来管理本地Git仓库。以下是一些常用的管理命令: 初始化一个新的Git仓库: 查

    2024年02月05日
    浏览(49)
  • Java XML教程_编程入门自学教程_菜鸟教程-免费教程分享

    Java XML教程 Java XML - 概述 Java XML - Parsers Java DOM Parser - 概述 Java DOM Parser - 解析XML文档 Java DOM Parser - 查询XML文档 Java DOM Parser - 创建XML文档 Java DOM Parser - 修改XML文档 Java SAX Parser - 概述 Java SAX Parser - 解析XML文档 Java SAX Parser - 查询XML文档 Java SAX Parser - 创建XML文档 Java SAX Parser - 修改

    2024年02月08日
    浏览(38)
  • .NET Emit 入门教程:第六部分:IL 指令:5:详解 ILGenerator 指令方法:创建实例指令

    上上篇介绍了 IL 指令的分类以及参数加载指令,该加载指令以 Ld 开头,将参数加载到栈中,以便于后续执行操作命令。 上一篇介绍参数存储指令,其指令以 St 开头,将栈中的数据,存储到指定的变量中,以方便后续使用。 本篇将介绍创建实例指令,其指令以 New 开头,用

    2024年04月08日
    浏览(92)
  • .NET Emit 入门教程:第六部分:IL 指令:6:详解 ILGenerator 指令方法:方法调用指令

    经过前面几篇的学习,我们了解到指令的大概分类,如: 参数加载指令,该加载指令以 Ld 开头,将参数加载到栈中,以便于后续执行操作命令。 参数存储指令,其指令以 St 开头,将栈中的数据,存储到指定的变量中,以方便后续使用。 创建实例指令,其指令以 New 开头,

    2024年04月08日
    浏览(64)
  • .NET Emit 入门教程:第六部分:IL 指令:3:详解 ILGenerator 指令方法:参数加载指令

    在上一篇中,我们介绍了 ILGenerator 辅助方法。 本篇,将详细介绍指令方法,并详细介绍指令的相关用法。 在接下来的教程,关于IL指令部分,会将指令分为以下几个分类进行讲解: 下面开始介绍第一部分,参数加载指令: 参数加载指令用于在方法中加载参数到操作数栈中,

    2024年04月08日
    浏览(69)
  • .NET Emit 入门教程:第六部分:IL 指令:4:详解 ILGenerator 指令方法:参数存储指令

    上一篇介绍了 IL 指令的分类以及参数加载指令,该加载指令以ld开头,将参数加载到栈中,以便于后续执行操作命令。 本篇开始介绍参数存储指令,其指令以st开头,将栈中的数据,存储到指定的变量中,以方便后续使用。 在 IL 中,除了参数存储指令 starg 和 stloc 之外,还

    2024年04月08日
    浏览(40)
  • .NET Emit 入门教程:第六部分:IL 指令:7:详解 ILGenerator 指令方法:分支条件指令

    经过前面几篇的学习,我们了解到指令的大概分类,如: 参数加载指令,该加载指令以 Ld 开头,将参数加载到栈中,以便于后续执行操作命令。 参数存储指令,其指令以 St 开头,将栈中的数据,存储到指定的变量中,以方便后续使用。 创建实例指令,其指令以 New 开头,

    2024年04月12日
    浏览(44)
  • .NET Emit 入门教程:第六部分:IL 指令:9:详解 ILGenerator 指令方法:运算操作指令(指令篇结束)

    经过前面几篇的学习,我们了解到指令的大概分类,如: 参数加载指令,该加载指令以 Ld 开头,将参数加载到栈中,以便于后续执行操作命令。 参数存储指令,其指令以 St 开头,将栈中的数据,存储到指定的变量中,以方便后续使用。 创建实例指令,其指令以 New 开头,

    2024年04月22日
    浏览(41)
  • 【Flink-1.17-教程】-【一】Flink概述、Flink快速入门

    在准备好所有的开发环境之后,我们就可以开始开发自己的第一个 Flink 程序了。首先我们要做的,就是在 IDEA 中搭建一个 Flink 项目的骨架。我们会使用 Java 项目中常见的 Maven 来进行依赖管理。 1、创建工程 (1)打开 IntelliJ IDEA,创建一个 Maven 工程。 (2)将这个 Maven 工程命

    2024年01月16日
    浏览(49)
  • Spring Boot入门(10):Mybatis之XML映射文件>、<=等特殊符号使用 | 保姆级教程

            在Mybatis的XML映射文件中,我们经常需要使用一些特殊符号来完成SQL语句的拼接,比如小于号“”、小于等于号“=”等。然而,由于这些符号在XML中有特殊的含义,因此直接在映射文件中使用可能会导致编译错误或者运行时异常。那么,如何才能正确地使用这些特殊

    2024年02月11日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包