当前位置: 首页 > news >正文

odoo_views文件夹

views文件夹

自定义模块中存放用户界面定义的目录,决定模型显示什么,如表单、列表、菜单、看板等

还包括菜单定义文件,..._menu.xml,定时任务cron

所有views目录下的都通过 __manifest__.py 中的 'data' 字段加载。

views核心功能

定义数据如何显示

等视图

创建菜单导航 构建左侧菜单栏

绑定业务动作 <record model="ir.actions.act_window"

控制页面布局 等布局标签

支持交互操作 添加按钮调用Python方法

菜单定义

列表视图

<odoo><record id="hx_inspection_daily_view_list" model="ir.ui.view"><field name="name">hx_inspection_daily_view</field><field name="model">hx.inspection.daily</field><field name="arch" type="xml"><list create="0"><field name="job_id"/><field name="name"/><field name="order"/><field name="evidence_note"/><!-- 使用一个不可见的 field 来提供列标题 --><field name="id" string="佐证图片" invisible="1"/><button name="action_view_evidence" type="object" title="查看佐证" icon="fa-image"/></list></field></record>
</odoo>

在数据库中创建一条 ir.ui.view 记录,告诉odoo如何显示 hx.inspection.daily 模型的数据

是定义试图的UI架构(Architecture),即页面长什么样,表示是一个XML结构,内部包含标签如 <list <form <kanban等

其他属性待补充:

表单视图

<odoo><record id="hx_inspection_daily_view_form" model="ir.ui.view"><field name="name">hx.inspection.daily.form</field><field name="model">hx.inspection.daily</field><field name="arch" type="xml"><form><header><button name="action_confirm" string="确认完成" type="object" class="btn-primary"/><field name="state" widget="statusbar"/></header><sheet><group string="基本信息"><field name="job_id"/><field name="user_id"/></group><group><group><field name="start_time"/></group><group><field name="end_time"/></group></group><notebook><page string="检查明细"><field name="line_ids" nolabel="1"/></page><page string="佐证图片"><field name="evidence_image_ids" widget="many2many_binary"/></page></notebook></sheet></form></field></record>
</odoo>

image-20251021102535371

标签使用?待补充

还可以在sheet里使用 <div> + 自定义样式

<form><sheet><div class="row" style="display: flex; flex-wrap: wrap;"><div style="flex: 1; min-width: 200px; padding: 5px;"><field name="field1"/></div><div style="flex: 1; min-width: 200px; padding: 5px;"><field name="field2"/></div><div style="flex: 1; min-width: 200px; padding: 5px;"><field name="field3"/></div></div></sheet>
</form>

《filed> 标签属性 widget="" 改变字段的显示方式

invisible="1" 隐藏字段 readonly="1" 字段不可编辑 required="1" 强制必填

placeholder=""输入框的提示文字 nolable="1" 不显示字段标签,只显示输入框

《button>在表单中添加一个可点击的按钮

<button name="action_send_email" string="发送邮件" type="object" class="btn-secondary"/>

name 调用模型中python方法名 type="object" 调用当前记录的方法

type="action" 调用一个窗口动作(ir.actions.act_window

string 按钮上显示的文字 class 按钮上显示的文字

动作视图

定义窗口动作 菜单数据视图的桥梁,点击一个菜单时, Odoo应该打开什么内容

ir.actions.act_window 是一种特殊的数据类型,当用户执行某个操作时,请打开一个窗口,并显示指定模型的数据

<odoo><record id="hx_inspection_daily_action" model="ir.actions.act_window"><field name="name">巡检任务列表</field><field name="res_model">hx.inspection.daily</field><field name="view_mode">list,form</field><field name="context">{'search_default_state': 'draft', 'default_user_id': uid}			</field></record>
</odoo>

record 标签 定义一条动作记录

​ id="hx_inspection_daily_action" 这是该动作的 外部ID 其他地方(如菜单)通过这个ID引用

​ model="ir.actions.act_window" 表示这是一条"窗口动作"类型的记录

  1. <field name="name">巡检任务列表</field>

    ​ 定义这个动作的显示名称

    ​ 这个名称出现在

    ​ 菜单项的文字上(如果菜单没有单独定义name

    ​ 浏览器标签页标题

    ​ 面包屑导航中

    1. <field name="res_model">hx.inspection.daily</field>
      

      res_model = Resource Model(资源模型)

      指定要打开哪个数据模型

    2. <field name="view_mode">tree,form</field>
      

      定义默认使用的视图模式

      多个模式用逗号分隔

list,form

​ 意思是:先显示list,允许用户点击进入表单(form)查看详情

  1. <field name="context">...</field> 
    

    传递上下文信息

    <field name="context">{'search_default_state': 'draft', 'default_user_id': uid</field>
    

    键值对 含义

    'search_default_state': 'draft' 打开时,默认筛选状态为"草稿"的记录

    ​ 相当于自动勾选了"草稿"过滤器

​ 'default_user_id': uid 当用户创建新纪录时, user_id 字段自动填

​ 入当前登录用户

💡 uid 是Odoo提供的内置变量,代表当前用户的 ID

image-20251021134913383

image-20251021134954630

流程

​ [菜单] "每日巡检"
​ ↓
​ 绑定 action="hx_inspection_daily_action"
​ ↓
​ Odoo 加载这条 ir.actions.act_window 记录
​ ↓
​ 查看 res_model=hx.inspection.daily
​ ↓
​ 查找 view_mode=list,form 的视图
​ ↓
​ 优先显示列表视图 (list)
​ ↓
​ 用户可浏览、搜索、点击进入 form 视图

http://www.zskr.cn/news/27007.html

相关文章:

  • 2025年硅锰合金厂家推荐排行榜,高碳硅锰合金,中碳硅锰合金,低碳硅锰合金,冶金级硅锰合金公司推荐
  • Alibaba Cloud Linux 4 服务器运维笔记
  • 2025年工业风扇厂家权威推荐榜:直流风扇、显卡散热风扇、一体机风扇、轴流风扇及散热风扇源头厂家综合实力解析
  • 2025年卫衣厂家推荐排行榜,男女款卫衣,春秋季卫衣,加绒卫衣,印花卫衣源头厂家精选推荐
  • 2025年二手发电机厂家推荐排行榜,二手发电机回收,二手发电机买卖,二手发电机买卖回收公司专业推荐
  • CF2152F Triple Attack
  • 2025年定型机厂家权威推荐榜:拉幅定型机/门富士/节能/余热回收/废气回收/烟气回收/智能排风/双层定型机源头企业综合解析
  • 2025年10月办公家具公司推荐:对比评测五强榜,聚焦恺 威家具品质标杆
  • 2025年不锈钢方形水箱厂家权威推荐榜:食品级/消防用/生活水箱专业制造商,304不锈钢方形水箱定制加工实力解析
  • 2025年陶瓷过滤板厂家权威推荐榜:白刚玉/棕刚玉/扇形/真空陶瓷过滤板,陶瓷滤膜,陶瓷过滤机配件及滤板专业选购指南
  • 2025年拖鞋机厂家权威推荐榜:酒店拖鞋生产线、全自动拖鞋机、一次性拖鞋机、酒店一次性拖鞋机器专业选购指南
  • 2025年棒球帽源头厂家权威推荐榜:专业定制与潮流设计,运动棒球帽、时尚棒球帽、防晒棒球帽、品牌棒球帽公司精选!
  • 2025年电主轴精密球轴承厂家推荐排行榜:高精度主轴轴承,机床主轴专用轴承,高速电主轴轴承公司口碑之选
  • 2025年工作服厂家推荐排行榜,防静电/劳保/国网/餐厅/工厂/电工/防酸碱/电力/车间/航空/员工工作服,文化衫/t恤/polo衫/冲锋衣/t恤衫公司推荐
  • 2025年CAR-T冷链运输厂家权威推荐榜:细胞治疗冷链物流专业服务与技术创新实力解析
  • 2025年服饰厂家权威推荐榜:棒球帽,卫衣,羽绒服源头厂家精选,潮流设计与舒适品质双重保障
  • 读AI赋能06多模态
  • CLIPSeg 使用文本和图像提示进行图像分割 - MKT
  • 理解`super()`
  • 五节课掌握 Python 面向对象(以“人狗大战”为例)
  • 图像分割 3D-Box-Segment-Anything(5)如何加速 - MKT
  • 专门针对无人机分割的预训练模型​ - MKT
  • [Bash] bash scripting common pitfalls
  • 鸭子类型(Duck Typing)中的“类型”,指的是什么的类型?为什么很多人认为“Python 没有真正实现多态”?多态的核心目的是什么?鸭子类型如何实现多态?
  • OAK-D-SR近红外相机 - MKT
  • 图像分割 Segment Anything(3)分割2D到3D点云分割 rgb-d相机 - MKT
  • 高级程序语言第二次作业
  • Linux消息队列如何查看与排查问题?
  • CF2007B Index and Maximum Value
  • CF1206B Make Product Equal One