热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

odoo学习之security,menu,tree,form

security在ir.model.access.csv中id,name,model_id:id,group_id:id,perm_read,perm_write,perm_c


security

在ir.model.access.csv中

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink

可以设置成

access_org_info,org.info,model_org_info,,1,1,1,1

其中:access_org_info:access_为固定开头,org_info为模块名称
org.info:为定义的模型文件里面model的_name字段
model_org_info:model_为固定开头,org_info为model的_name字段,但是要把 . 改成 _
base.group_user:可以不填
1,1,1,1 代表之前四个字段的权限
注:要在__manifest__.py中,把ir.model.access.csv注释打开,权限才生效


menu

创建菜单视图


  1. 在view中定义一个menutem.xml文件






  • menuitem标签:为创建菜单的标签
  • name属性:就是在菜单显示的内容
  • id属性:id标识,这里是唯一的即可
  • parent属性:父级,我们在下面定义parent就可以将下面的子菜单定位在id为org.menu_root的页面中了
  • action属性:动作,必须制定到对于的act_windows视图上,没有指定则页面不会显示这个菜单功能

  1. 在view中定义一个department.xml文件



部门管理
ir.actions.act_window
org.department
tree,form



  • record标签:语法标准,必须要写在最外面
  • id属性:id标识,这里是唯一的即可
  • model属性:xml会继承IrActionsActWindow的动作模型,odoo会根据模型来渲染视图,我们每一个view都要设置一个基础的act_windows视图
  • field->name=“name”:定义页面的左上角显示内容
  • field->name=“type”:类型
  • field->name=“res_model”:act_windows对应渲染的模型,这里写上我们之前定义的org.department模型即可
  • field->name=“view_mode”:需要渲染的类型,这里先定义tree视图和form视图

  1. 在_manifest_.py中加载刚创建的两个视图

# 加载的视图
'data': [
'....',
'views/department.xml',
'views/menutem.xml',
],

注意:注意顺序,菜单视图一定要放在最后,act_windows视图放在菜单视图的上面
4)进入security->ir.model.access.csv文件中替换下面代码

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_org_department,org.department,model_org_department,,1,1,1,1

  • id: 唯一标识,必须唯一
  • name: 描述名称,描述信息
  • model_id:id:model的id格式是 model_模型类名
  • group_id:id : group组的id,这里可以不填,或者写上自己的定义的用户组
  • perm_read:查看 1有权限,0无权限,下面的一样的
  • perm_write:修改
  • perm_create: 创建
  • perm_unlink: 删除

并在data中打开对应的权限文件的屏蔽

# 加载的视图
'data': [
'security/ir.model.access.csv',
'views/department.xml',
'views/menutem.xml',
],

5)最后,进入应用找到自己的模块去升级


tree


  1. 创建act_window
    在views文件夹中创建member.xml文件



成员管理
ir.actions.act_window
org.member
tree


2)把menutem.xml文件改成






3)并在_manifest_.py中加载刚创建视图

# 加载的视图
'data': [
'....',
'security/ir.model.access.csv',
'views/department.xml',
'views/member.xml',
'views/menutem.xml',
],

4)最后升级模块


创建tree视图代码

1)在member.xml文件中添加代码


成员管理列表
org.member










在record中大部分都是固定写法,在tree标签中写上对应的字段名称即可
注:
模型名称 模型名称一定要一致并且不能写错,因为odoo会根据Model的对应到对应的view视图
tree标签,这是tree视图的标志,不可以少
tree标签中的field,name等于值和数据库的字段名要一致才能正确渲染
2)修改security权限
3)升级模块


form

什么是from视图


  • from视图即表单视图
  • 我们可以理解为对tree列表修改,创建的时候的视图展示样式
  • tree视图创建之后会自动创建一个对应的from视图,但是我们如果想要排版或者对自己进行一些操作那么就需要自己来自定义from视图了

创建form视图

之前已经创建了tree视图,现在需要加入form视图需要修改两个地方


  1. 修改views文件中member.xml文件act_window的view_mode的地方,添加from
    在这里插入图片描述

2)添加form视图内容


member_view_form
org.member














注:model的地方也一定要也正确
from里面是组的概念所以一定要使用group组来包着field字段







推荐阅读
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 突破MIUI14限制,自定义胶囊图标、大图标样式,支持任意APP
    本文介绍了如何突破MIUI14的限制,实现自定义胶囊图标和大图标样式,并支持任意APP。需要一定的动手能力和主题设计师账号权限或者会主题pojie。详细步骤包括应用包名获取、素材制作和封包获取等。 ... [详细]
  • 本文介绍了lintcode(12)题目的要求和解题思路,以及给出了相应的代码实现。题目要求在给定的字符串source中找到包括所有目标字符串字母的最短子串,并且时间复杂度为O(n)。解题思路是使用滑动窗口的方法,通过维护一个unordered_map来记录目标字符串中每个字符的出现次数,并使用双指针来寻找最小子串。代码实现部分给出了具体的实现代码。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • HashMap的相关问题及其底层数据结构和操作流程
    本文介绍了关于HashMap的相关问题,包括其底层数据结构、JDK1.7和JDK1.8的差异、红黑树的使用、扩容和树化的条件、退化为链表的情况、索引的计算方法、hashcode和hash()方法的作用、数组容量的选择、Put方法的流程以及并发问题下的操作。文章还提到了扩容死链和数据错乱的问题,并探讨了key的设计要求。对于对Java面试中的HashMap问题感兴趣的读者,本文将为您提供一些有用的技术和经验。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • 本文介绍了Hive常用命令及其用途,包括列出数据表、显示表字段信息、进入数据库、执行select操作、导出数据到csv文件等。同时还涉及了在AndroidManifest.xml中获取meta-data的value值的方法。 ... [详细]
  • 1Lock与ReadWriteLock1.1LockpublicinterfaceLock{voidlock();voidlockInterruptibl ... [详细]
author-avatar
手机用户2602901861
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有