宜兴通达竭诚为您服务。

通达科技 - 宜兴电脑维护及IT服务外包服务商

第七章:基本视图
  • 上传者: Administrator
  • 上传时间:2023年12月04日 07时09分56秒
摘要:
我们在  上一章节 [1]  中已经看到,Odoo 能够为给定的模型生成默认视图。实际上,默认视图对于业务应用程序来说是  永远不可接受的  。相反,我们至少应该以一种逻辑方式组织各个字段。 视图在 XML 文件中定义,包含操作和菜单。它们是  ir.ui.view  模型的实例。 在我们的房地产模 ......
正文 相关文章 请喝咖啡

    我们在 上一章节 中已经看到,Odoo 能够为给定的模型生成默认视图。实际上,默认视图对于业务应用程序来说是 永远不可接受的 。相反,我们至少应该以一种逻辑方式组织各个字段。

    视图在 XML 文件中定义,包含操作和菜单。它们是 ir.ui.view 模型的实例。

    在我们的房地产模块中,我们需要以逻辑方式组织字段:

    • 在列表(树形)视图中,我们希望显示更多内容,而不仅仅是名称。

    • 在表单视图中,字段应该被分组。

    • 在搜索视图中,我们必须能够搜索更多的内容,而不仅仅是名称。具体来说,我们想要一个“可用”属性的过滤器和一个按邮政编码分组的快捷方式。

    列表

    参考: 有关此主题的文档可以在 列表 中找到。

     注解

    目标:在本节结束时,列表视图应该如下所示:

    列表视图

    列表视图,也称为树形视图,以表格形式显示记录。

    它们的根元素是 <tree>。这个视图的最基本版本只是简单地列出了要在表格中显示的所有字段(每个字段都是一个列):

    <tree string="Tests">
        <field name="name"/>
        <field name="last_seen"/>
    </tree>
    

    一个简单的例子可以在 这里 找到。

     Exercise

    添加自定义列表视图。

    在适当的 XML 文件中为 estate.property 模型定义一个列表视图。检查本节的 目标,以了解要显示的字段。

    小费:

    • 不要添加 editable="bottom" 属性,你可以在上面的例子中找到。我们稍后会回到它。

    • 一些字段标签可能需要调整以匹配参考。

    像往常一样,您需要重新启动服务器(不要忘记 -u 选项)并刷新浏览器以查看结果。

     警告

    在本章中,您可能会使用一些复制粘贴操作,因此请务必确保每个视图的 id 保持唯一!

    表单

    参考: 有关此主题的文档可以在 表单 中找到。

     注解

    目标:在本节结束时,表单视图应该如下所示:

    表单视图

    表单用于创建和编辑单个记录。

    它们的根元素是 <form>。它们由高级结构元素(组和笔记本)和交互元素(按钮和字段)组成:

    <form string="Test">
        <sheet>
            <group>
                <group>
                    <field name="name"/>
                </group>
                <group>
                    <field name="last_seen"/>
                </group>
                <notebook>
                    <page string="Description">
                        <field name="description"/>
                    </page>
                </notebook>
            </group>
        </sheet>
    </form>
    

    您可以使用常规的HTML标签,例如 div 和 h1 ,以及 class 属性(Odoo提供了一些内置类)来精细调整外观。

    一个简单的例子可以在 这里 找到。

     Exercise

    添加自定义表单视图。

    在适当的 XML 文件中为 estate.property 模型定义一个表单视图。查看本节的 目标 ,了解页面的预期最终设计。

    这可能需要一些试错才能达到预期的结果;-)建议您逐个添加字段和标签,以帮助理解其工作原理。

    为了避免每次修改视图时都要重新启动服务器,可以在启动服务器时使用 --dev xml 参数,这样会更方便:

    $ ./odoo-bin --addons-path=addons,../enterprise/,../technical-training-sandbox/ -d rd-demo -u estate --dev xml
    

    该参数允许您只需刷新页面即可查看您的视图修改。

    域名

    参考: 有关此主题的文档可以在 搜索域 中找到。

    在Odoo中,域编码记录的条件:域是模型记录的子集选择的条件列表。每个条件是一个三元组,包括 字段名 , 操作符 和  。如果指定的字段满足操作符应用于值的条件,则记录满足条件。

    例如,当应用于 Product 模型时,以下领域选择所有单位价格大于 1000 的 services

    [('product_type', '=', 'service'), ('unit_price', '>', 1000)]
    

    默认情况下,条件使用隐式的AND组合,这意味着 每个 条件都需要满足才能使记录匹配域。逻辑运算符 & (AND), | (OR)和 ! (NOT)可用于显式地组合条件。它们在前缀位置使用(运算符插入其参数之前而不是之间)。例如,要选择产品“是服务  具有单位价格 不在 1000和2000之间”的条件:

    ['|',
        ('product_type', '=', 'service'),
        '!', '&',
            ('unit_price', '>=', 1000),
            ('unit_price', '<', 2000)]
    

     注解

    XML 不允许在 XML 元素内使用 < 和 &。为了避免解析错误,应使用实体引用:&lt; 表示 <&amp; 表示 &。其他实体引用(&gt;&apos; 和 &quot;)是可选的。

     Example

    <filter name="negative" domain="[('test_val', '&lt;', 0)]"/>
    

     Exercise

    添加筛选和分组。

    应该添加以下内容到之前创建的搜索视图中:

    • 一个过滤器,显示可用的属性,即状态应为“新”或“已收到报价”。

    • 按邮政编码分组结果的能力。

    看起来不错吧?到这一步,我们已经能够创建模型并设计一个在业务上有意义的用户界面。然而,还缺少一个关键组件: 模型之间的链接 。

    本文章从网上收集,如有侵权请联系tderp@tderp.com删除
  • 微信扫一扫,一分也是爱:
  • 微信

服务原则及地区范围

宜兴通达网络科技有限公司,地处中国宜兴环科园内,是一家高新技术企业。公司在企业网络维护和企业信息化建设与咨询方面,有10多年经验。

我公司愿与客户一道,力求彻底解决客户问题!
我们不是在给企业提供“头痛医头、脚痛医脚”的暂时解决方案,而是在部署根本性安全与稳定服务!!
我们愿携手客户,建立企业IT规划;杜绝随意安装系统、软件等操作;力求共同维护有序、安全、稳定的网络办公环境!!!
IT服务,服务是根本,客户是上帝;我们提供快速响应、快速上门、快速排查,提供优质高效的服务!!!!

通达科技提供全国范围内的服务,服务形式包括远程协助、电话咨询、电子邮件咨询、传真咨询、问答平台的问题解决等。

宜兴地区提供上门服务:

  • 市区服务:宜城街道、城北街道(屺亭街道)、新街街道、新庄街道、环科园、渚桥开发区
  • 市郊服务:张渚镇、西渚镇、太华镇、徐舍镇、官林镇、杨巷镇、新建镇、和桥镇、高塍镇、万石镇、周铁镇、芳桥镇、丁蜀镇、湖父镇。
  • 联系电话:189-21-343434
  • 在线沟通: