当前位置: 首页 > 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.jsqmd.com/news/19090/

相关文章:

  • 认证爆破
  • 利用RTOS实现LED灯交替闪烁
  • 2025年粘度计厂家权威推荐榜:在线旋转振动/实验室反应釜管线在线粘度计专业测评与选购指南
  • 树形图博弈
  • 2025年陶瓷过滤机厂家权威推荐榜:专业陶瓷过滤机,真空陶瓷过滤机,高效陶瓷过滤机源头厂家实力解析
  • Alibaba Cloud Linux 4 服务器运维笔记
  • 2025年耳机插座厂家推荐排行榜,DC插座,防水耳机插座,DC防水耳机插座,耳机DC插座公司推荐
  • 实时通信的头痛-问题不在WebSocket而是你的框架
  • 文件不只是数据-一份稳健的文件处理指南
  • 你的中间件一团糟-是时候修复它了-️
  • 自增自减,幂运算,逻辑运算符、短路运算,位运算,字符串连接符,三元运算符复习
  • 20232309 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • 2025年轻触开关/检测开关厂家推荐排行榜,轻触按键开关,防水轻触开关,贴片轻触开关,检测开关源头厂家精选指南
  • 2025年卫衣厂家推荐排行榜,男女款卫衣,春秋季卫衣,加绒卫衣,印花卫衣源头厂家精选推荐
  • 2025年护栏厂家推荐排行榜:市政护栏,道路护栏,桥梁护栏,小区护栏,锌钢护栏,阳台护栏公司精选
  • CentOS下安装部署Docker
  • 2025年铁氟龙高温线厂家权威推荐榜:极细铁氟龙/UL10064/UL1332/UL1867铁氟龙线材专业选购指南
  • 2025年发电机组厂家权威推荐榜:柴油发电机、静音发电机组源头企业综合实力与能效表现深度解析
  • 999
  • 2025年二手发电机厂家推荐排行榜,二手发电机回收,二手发电机买卖,二手发电机买卖回收公司专业推荐
  • 2025年角接触轴承厂家权威推荐榜单:高精度/高承载/高精密/机床主轴/汽车专用/定制/可替代进口/高转速/高刚性轴承全方位解析
  • 极大极小搜索
  • 2025年粘度计厂家权威推荐榜:旋转粘度计、落球粘度计、在线粘度计、便携式粘度计专业选购指南
  • 法语NER模型在可再生能源领域的应用
  • mochi-mqtt/server 实现一个mqtt bridge 功能
  • 2025年立式TYPE-C母座厂家推荐排行榜,TYPE-C接口,USB-C母座,立式贴片TYPE-C连接器,防水TYPE-C母座公司精选
  • CF2152F Triple Attack
  • 2025年定型机厂家权威推荐榜:拉幅定型机/门富士/节能/余热回收/废气回收/烟气回收/智能排风/双层定型机源头企业综合解析
  • 2025年真空钎焊炉厂家权威推荐榜单:工业级真空热处理设备,真空扩散焊炉,高温钎焊设备专业制造商深度解析
  • 2025年10月办公家具公司推荐:对比评测五强榜,聚焦恺 威家具品质标杆