上一篇内容:如何快速在odoo中创建自己的菜单

前言

上面的内容我们已经学会了如何去创建odoo的菜单,下面我们要学习的是odoo的基础视图tree视图,我们的目标是实现型号管理的列表页面

创建model

之前我们已经学了简单的创建了一个菜单,我们也知道了视图的渲染是离不开model的支持的,我们现在的目标是在型号管理中创建tree视图,那么我们就要先创建型号管理对应的model

电商中都有SPU和SKU的概念,这里我们就以手机为举例,那么一个手机型号就是一个简单的SPU,对应手机的不同的颜色和对应的内存大小等不同的参数所产生的商品那么就是SKU(SKU是物理上不可分割的最小存货单元

  • SPU:iphoneXs
  • Sku:32G, 金色
  • 品牌:苹果

那么我们就可以创建一个简单的model(写在model.py中)

class GoodsSpu(models.Model):
"""
型号表
"""
_name = "fandx.goods.spu" name = fields.Char("商品名称")
code = fields.Char("商品编号")
brand_id = fields.Many2one("fandx.brands", "品牌") create_date = fields.Datetime("创建时间", default=datetime.now())

odoo的orm方法会在以后的教程中进行讲解,现在我们可以理解为创建了一个数据表

  • 表名:fandx_goods_spu

  • name字段:varChar类型

  • code字段:varChar类型

  • brand_id字段:外键字段,所以这里是int类型

  • create_date字段:datetime类型

创建act_window和menu

在我们创建了model下面的目标就是在页面中去渲染上面的几个字段的数据

既然要渲染数据库,odoo中不管什么视图,都要去创建基础的act_windows视图和menu菜单

  • 在views文件夹中创建goods.xml文件

    <odoo>
    <record id="goods_spu_action" model="ir.actions.act_window">
    <field name="name">型号管理</field>
    <field name="type">ir.actions.act_window</field>
    <field name="res_model">fandx.goods.spu</field>
    <field name="view_mode">tree</field>
    </record>
    </odoo>
  • 注意:

    • res_model要写刚才创建的model的名称
    • view_mode要写上tree视图
  • 修改menuitem菜单中action

    <odoo>
    <menuitem name="FANDX仓库" id="fandx_stock.menu_root"/>
    <menuitem name="品牌管理" id="fandx_stock.menu_1" parent="fandx_stock.menu_root" action="brand_action"/>
    <menuitem name="型号管理" id="fandx_stock.menu_2" parent="fandx_stock.menu_root" action="goods_spu_action"/>
    <menuitem name="SKU管理" id="fandx_stock.menu_3" parent="fandx_stock.menu_root" action="brand_action"/>
    </odoo>

创建tree视图代码

下面就是我们这次的重头戏了创建tree视图代码

  • 继续在goods.xml中在act_window上面添加代码

    <record id="goods_spu_view_tree" model="ir.ui.view">
    <field name="name">型号管理列表</field>
    <field name="model">fandx.goods.spu</field>
    <field name="arch" type="xml">
    <tree>
    <field name="name"/>
    <field name="brand_id" />
    <field name="code" />
    <field name="create_date" />
    </tree>
    </field>
    </record>
    <record id="goods_spu_action" model="ir.actions.act_window">
    <field name="name">型号管理</field>
    <field name="type">ir.actions.act_window</field>
    <field name="res_model">fandx.goods.spu</field>
    <field name="view_mode">tree,form</field>
    </record>
  • 非常简单,在record中大部分都是固定写法,在tree标签中写上对应的字段名称即可

  • 注意点

    • <field name="model">模型名称</field> 模型名称一定要一致并且不能写错,因为odoo会根据Model的对应到对应的view视图
    • tree标签,这是tree视图的标志,不可以少
    • tree标签中的field,name等于值和数据库的字段名要一致才能正确渲染

修改security权限

上面的工作做完,有的小伙伴可以尝试的更新了自己的模块,发现自己的菜单还不见了,odoo中的所有模型在分配之后都会基于权限进行页面渲染,所以这里需要给fandx_goods_spu赋予权限

  • 在security文件夹下的ir.model.access.csv文件添加内容

    ......
    access_fandx_goods_spu,fandx_stock.fandx_goods_spu,model_fandx_goods_spu,base.group_user,1,1,1,1

大功告成

去应用中找到自己的模块升级一下看看是否显示正常

odoo视图入门学习- tree视图的使用的更多相关文章

  1. odoo开发笔记--from视图隐藏顶部&tree视图保留

    场景描述: 开发过程中,有时候我们需要去除odoo自带的一些样式, 比如,form视图,要集成自定义的界面时,就希望把顶部的服务动作 和 分页按钮 隐藏掉. 处理方式: 分两种情况: 1. 保留顶部区 ...

  2. Odoo 二次开发教程(三)-第一个Model及Form、Tree视图

    创建完我们的模块,接下来我们就要为我们的模块添加一些对象.今天我们将要创建一个学生对象(tech.student)和一些基本的属性,并将用form和tree视图将其展示出来: 一. 创建tech.st ...

  3. 第15.18节 PyQt(Python+Qt)入门学习:Model/View架构中视图Item Views父类详解

    老猿Python博文目录 老猿Python博客地址 一.概述 在PyQt图形界面中,支持采用Model/View架构实现数据和界面逻辑分离,其中Model用于处理数据存储,View用于界面数据展现,当 ...

  4. openerp学习笔记 视图(tree\form)中隐藏按钮( 创建、编辑、删除 ),tree视图中启用编辑

    视图(tree\form)中隐藏按钮( 创建.编辑.删除 )create="false" edit="false" delete="false&quo ...

  5. 【转】MYSQL入门学习之十:视图的基本操作

    转载地址:http://www.2cto.com/database/201212/176775.html 一.视图的基本介绍  www.2cto.com           视图是虚拟的表.与包含数据 ...

  6. odoo开发笔记 -- tree视图按指定字段group_by分组显示

    注意点: view视图文件中的搜索视图要放在action视图的前边. 在action视图中,要写search_view_id, 还有context, search_default_group_by_字 ...

  7. 06 数据库入门学习-视图、sql注入、事务、存储过程

    一.视图 1.什么是视图 视图本质是一张虚拟的表 2.为什么要用 为了原表的安全 只要有两大功能 1.隐藏部分数据,开放指定数据 2.视图可以将查询结果保存,减少sql语句的次数 特点: 1.视图使用 ...

  8. 第十章 Odoo 12开发之后台视图 - 设计用户界面

    本文将学习如何为用户创建图形化界面来与图书应用交互.我们将了解不同视图类型和小组件(widgets)之间的差别,以及如何使用它们来提供更优的用户体验. 本文主要内容有: 菜单项 窗口操作(Window ...

  9. 第十一章 Odoo 12开发之看板视图和用户端 QWeb

    QWeb 是 Odoo 使用的模板引擎,它基于 XML 来生成 HTML 片断和页面.通过 QWeb可生成内容丰富的看板(Kankan)视图.报表和 CMS 网页.本文中我们将学习QWeb 语法以及如 ...

随机推荐

  1. vue农历日历

    <template> <div class="calendar-main"> <div class="choose_year"&g ...

  2. 专注于大数据分析和数字基建,星盟UICI切入资产管理领域

    资产管理行业体系庞大,按领域可以大致分为公募.私募.券商.保险.银行.信托六大领域.面对六大领域百万亿级市场,近年来,也出现了不少初创公司针对资产管理的细分领域提供专有解决方案.而星盟全球投资公司就是 ...

  3. 谷歌地球服务器"失联"的替代方案

    2020年11月下旬,谷歌地球开始无法连接.作为谷歌地球的替代方案,推荐使用国产软件"图新地球LSV".网址 http://www.tuxingis.com 下载"图新地 ...

  4. PBN转弯保护区作图回顾

    假期的最后一天,是该小结一下的时候了. 风螺旋有了自己中式风格的Logo,大家是否喜欢? 过去的春节假期,我们从学习CAD入手,回顾了风螺旋在PBN中的多种情况,画了很多的图,写了不少的文字,或许现在 ...

  5. vue页面嵌套其他页面判断是否生产https

    if (location.protocol.indexOf('https') > -1) { var oMeta = document.createElement('meta'); oMeta. ...

  6. IDEA重新安装之后配置GIT

    注:此方法可用于配置gitlab也可用于配置github 1.在github中创建一个账号:https://github.com/join?source=header-home 2.下载并安装git: ...

  7. Linux安装与使用

    1.安装 1.1安装VMware 1.1.1VM12版本安装 1)下载:网盘:链接:https://pan.baidu.com/s/1Jnr--KIy3bSTvRhtB8nfiQ 提取码:czna 2 ...

  8. SecureCRT无法登陆ubuntu问题解决的方法(亲测有效)

    最近在虚拟机安装了几个ubuntu系统玩耍,然后想着用SecureCRT在Windows本地连接但是怎么也连接不上!!!如下,这只是示意图,ip地址是瞎编的,但是情况完全相同,期间尝试过让linux和 ...

  9. Markdown(2)基本语法

    ​ Markdown 是一种轻量级标记语言 , 通过简单的标记语法,使文本内容具有一定的格式 . 一.段落 1. 标题 语法格式: 符号 "#" 可以标记 1~6级标题.一级标题对 ...

  10. HDOJ-1043 Eight(八数码问题+双向bfs+高效记录路径+康拓展开)

    bfs搜索加记录路径 HDOJ-1043 主要思路就是使用双向广度优先搜索,找最短路径.然后记录路径,找到结果是打印出来. 使用康拓序列来来实现状态的映射. 打印路径推荐使用vector最后需要使用a ...