odoo15开发学习3-自定义应用之基础视图

引言

上一章主要讲了如何用命令快速创建一个(模块)应用的文件,没有具体讲文件中具体分别是什么,各文件写的是什么。本期讲下开发中最基础的一些文件代码。

首先通过上期对自定义应用文件的注释取消就得到一个有页面应用。主要修改了

~\views\views.xml、~\models\models.py  、~\security\ir.model.access.csv 这三个文件

views.xml
这个文件用于定义Odoo模块的用户界面视图。视图是用户与数据交互的界面,如表单视图、列表视图、搜索视图等。在views.xml文件中,你可以指定如何在Odoo的用户界面中展示模型数据,包括字段的布局、分组、排序等。

models.py
这个文件包含了模块的业务逻辑和数据模型。在models.py文件中,你定义了Odoo模型,这些模型映射到数据库表,并包含了字段定义和业务逻辑方法。字段定义了模型的数据结构,而方法则实现了业务逻辑,如数据验证、计算字段值等。

ir.model.access.csv
这个文件用于定义模型的访问控制规则。在ir.model.access.csv文件中,你可以指定哪些用户组可以读取、写入、创建或删除特定模型的记录。这些访问控制规则对于确保数据安全和符合业务需求至关重要。

上面是gpt介绍的,我自己理解大体就是views.xml就主要写前端页面,该页面需要显示什么。model.py写前端页面显示字段的数据模型,该页面显示的数据有哪些,如何存储等。我也是非开发人员,第一次接触odoo,感觉odoo挺抽象的,主要是记录一下,如有错误欢迎指教。

一、views.xml视图文件讲解

views.xml基础代码主要分为三部分视图、动作、菜单,下图是上期的示例代码(部分)。

1、视图

odoo的基础视图,主要有8种:表单视图 (Form View)、列表视图 (List View)、看板视图 (Kanban View)、数据透视表视图 (Pivot View)、.图表视图 (Graph View)、日历视图 (Calendar View)、搜索视图 (Search View)、活动视图 (Activity View)。示例中的就是列表视图,我们就用列表视图讲下。

<!-- 定义一个Odoo视图,用于展示odoo_myapp模块中的数据 -->
<record model="ir.ui.view" id="odoo_myapp.list">
  <!-- 视图的名称 -->
  <field name="name">odoo_myapp list</field>
  <!-- 视图关联的模型 -->
  <field name="model">odoo_myapp.odoo_myapp</field>
  <!-- 视图的结构定义 -->
  <field name="arch" type="xml">
    <!-- 定义列表视图 -->
    <tree>
      <!-- 列出模型中的name字段 -->
      <field name="name"/>
      <!-- 列出模型中的value字段 -->
      <field name="value"/>
      <!-- 列出模型中的value2字段 -->
      <field name="value2"/>
    </tree>
  </field>
</record>

model="ir.ui.view"表示这是一个视图,视图的固定写法。

id="odoo_myapp.list"是唯一标识符,注意不要和其他的一样。

<field name="name">odoo_myapp list</field>视图名称可以随意写。

<field name="model">odoo_myapp.odoo_myapp</field>视图指定的模型。

这里指定的model.py里的_name。

这一段属于固定写法列表视图的定义方式

<field name="arch" type="xml">
    <tree>
     <field name="name"/>
      <field name="value"/>
      <field name="value2"/>
    </tree>
 </field>

其中的name、value、value2对应的是这一块。

这段代码大概表示这个页面。这个是列表视图。

2、动作

比较抽象,相当于把菜单按钮和页面联系起来的部分,它说明了某个菜单按钮按下之后会跳转到那个页面试图。

<!--model="ir.actions.act_window"定义窗口动作的固定写法-->
<!--随意写即可注意唯一标识,和菜单代码中的action对应即可,当前阶段可以理解为指定菜单按钮。-->
<record model="ir.actions.act_window" id="odoo_myapp.action_window"/>
<!--name定义动作名可以随意写。-->
<field name="name">odoo_myapp_window</field>
<!--res_model指定模型,需要和views视图中的model一致。-->
<field name="res_model">odoo_myapp.odoo_myapp</field>
<!--view_mode指定试图类型。我们当前没有定义form表单试图但是它list列表试图有默认的form表单试图。-->
<field name="view_mode">tree,form</field>
</record>

 3、菜单

基本都是固定写法,name随意写,注意id唯一标识符不能重复,parent表示父级菜单是谁,action

表示点击这个菜单项后需要执行什么动作。

<menuitem name="odoo_myapp" id="odoo_myapp.menu_root"/>
<menuitem name="Menu 1" id="odoo_myapp.menu_1" parent="odoo_myapp.menu_root"/>
<menuitem name="List" id="odoo_myapp.menu_1_list" parent="odoo_myapp.menu_1" action="odoo_myapp.action_window"/>

这段代码主要代表前端这些地方。

二、model. py模型文件讲解

主要看views.xml如何写,对应的变量名需要对应些。这样写完前端填表修改等操作odoo就自己操作掉了,不需要我们开发者去写数据库操作等,当然也能自己重写。正常开发中不只有下面这些,后面还得慢慢学咯!!!

from odoo import models, fields  //引入odoo相关的库

//类名随意,(model.Model固定写法)
class odoo_myapp(models.Model):
    _name = 'odoo_myapp.odoo_myapp'  //表示模型名称,与views.xml中的model对应。
    _description = 'odoo_myapp.odoo_myapp'  //模型描述,随意些

    name = fields.Char()     //字符型
    value = fields.Integer()  //整型
    value2 = fields.Float(compute="_value_pc", store=True) //浮点型
    description = fields.Text()  //文本型

自定义应用最基础的代码就是这些,还需要学习其他几种视图的写法。模型也一样不止这几个字段和参数。博主技术有限就不多讲,以免误导。可以看看其他大佬的教程。

  • 26
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值