odoo controller 继承
方式一:
继承基类,直接重写方法
from odoo.addons.web.controllers.main import Export class PsExport(Export):
@http.route('/web/export/get_fields', type='json', auth="user")
def get_fields(self, model, prefix='', parent_name= '', import_compat=True, parent_field_type=None, parent_field= None, exclude=None):
return XXX
方式二:
Monkey Patch – – python运行时动态改变类的方法
例1:
from odoo.addons.web.controllers.pivot import TableExporter @http.route('/web/pivot/export_xls', type='http', auth="user")
def export_xls(self, data, token):
return XXX TableExporter.export_xls = export_xls
例2:
fields_view_get_origin = models.BaseModel.fields_view_get @api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
res = fields_view_get_origin(self, view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu)
if view_type == 'form' and self.env['ir.module.module'].search_count(
[('name', '=', 'rul'), ('state', '=', 'installed')]):
base_model = res.get('base_model')
fields_ids = self.env['ir.model'].search([('model', '=', base_model)])
doc = etree.XML(res['arch'])
for fields_id in fields_ids.fields_ids:
xpath = "//field[@name='%s']" % fields_id.name
if doc.xpath(xpath):
node = doc.xpath(xpath)[0]
node.set('required', '1')
setup_modifiers(node, res['fields'][fields_id.name])
res['arch'] = etree.tostring(doc, encoding='unicode')
return res models.BaseModel.fields_view_get = fields_view_get
odoo controller 继承的更多相关文章
- angularjs controller 继承
前沿 最近在angularjs项目当中,看到 controller 好多都是重复性的代码,在 controller 当中有好多代码很相似 function(比如 controller 下的 CRUD ...
- [ionic开源项目教程] - 第11讲 封装BaseController实现controller继承
关注微信订阅号:TongeBlog,可查看[ionic开源项目]全套教程. 截止到第10讲,tab1[健康]模块的功能基本已经完成了,但这一讲中,controller层又做了较大的改动,因为下一讲中t ...
- odoo视图继承
odoo视图继承 简介继承 在odoo里可以通过继承的方式来改写已经存在的view 对比view的定义视图定义中写法多了inherit_id inherit_id指向要改写的view <fiel ...
- ASP.NET MVC:如何提供 Controller 继承体系使用的 ModelBinder?
背景 Mvc 提供了一种可扩展的模型绑定机制,具体来说就是:将客户端传递的参数按照一定的策略绑定到 action 的参数上,这带来的直接好处就是让 action 的参数支持强类型.一般来说我们有如下方 ...
- Odoo Controller详解
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826241.html 一:Controller 一般通过继承的形式来创建controller类,继承自od ...
- Animator Controller 继承关系
准备知识 对于Animator Controller中蜘蛛网一样的几十条连线,后续如果靠人工维护,那成本将是很大. AnimatorOverrideController组件的文档:https://do ...
- odoo 模型继承
在odoo中有两种模型的继承机制(传统方式和委托继承方式) 重点:在__manifest__.py中找到depends,加上要继承的模块 'depends': ['account'] 注意继承的模型所 ...
- 跟我学AngularJs:Controller数据共享、继承、通信使用具体解释
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主讲了AngularJs中的Controller中数据共享.继承.通信的具体使用 本 ...
- Odoo中的模型继承、视图继承、Qweb模板继承详解
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826114.html 在实际开发过程中,经常会遇到需要修改Odoo原生逻辑的情况.然而,直接修改Odoo底 ...
随机推荐
- win10 系统运行加速方法
win10系统就是不太好用,很多功能我们硬件跟不上,会拖累系统运行速度,之前将win10优化了一部点,但是有些地方反而降低运行速度,因此需要关闭:1.磁盘的优化,这个说实话,可以自己来优化,没必要时刻 ...
- 在阿里云CentOS服务器上安装Python3.7并设置为默认Python
1.引言 Linux操作系统自带一个python2.7,没有python3,在开发的时候非常不便,因此需要安装一个python3,并且将python3设置系统默认python,同时还不能影响那些Lin ...
- 文件夹上传组件webupload插件
javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...
- JS的ES5的扩展内容
JS的ES5 1.严格模式: (1)什么是严格模式: 在全局或函数的第一条语句定义为: 'use strict' 如果浏览器不支持, 只解析为一条简单的语句, 没有任何副作用 (2)严格模式作用: ...
- 细说PHP-fpm
在理解php-fpm之前,我们要先搞清楚几个关键词以及他们之间的关系:CGI FastCGI:(Fast Common Gateway Interface),即快速通用网关接口,是一种让交互程序与We ...
- 分享一个Centos8的国内yum源
使用的是清华大学开源镜像站,文件地址: https://github.com/hackyoMa/docker-centos/blob/8/CentOS-Base.repo 使用方法: cd /etc/ ...
- 利用iptables做端口转发
需求背景: A与C不在同一网段无法直接访问,而A和B,C和B可以互通.现需要A借助B访问C的3306端口. 解决方案: 利用iptables配置规则,实现端口转发. 具体操作: 在B上开启端口转发功能 ...
- zabbix监控nginx,mysql,java
zabbix 支持的主要监控方式(1)agent代理程序 在Agent监控方式下,zabbix-agent会主动收集本机的监控信息并通过TCP协议与zabbix-server传递信息.Agent 监控 ...
- [算法模板]倍增求LCA
倍增LCA \(fa[a][i]\)代表a的第\(2^{i}\)个祖先. 主体思路是枚举二进制位,让两个查询节点跳到同一高度然后再向上跳相同高度找LCA. int fa[N][21], dep[N]; ...
- java复制对象之深拷背
在java开发中,有时我们需要复制对象,并且确保修改复制得到的对象不会影响原来的对象. 于是,有些人可能会写出类似以下的代码: public class CloneTest { public stat ...