Odoo二次开发使用细节

1、路由

 @http.route('/product/service/', auth='public', methods = ['get', 'post'], csrf = False)
    def reduce_product(self, **kw):

methods:指定访问的方法,post方法需要 csrf=False

auth:鉴权控制,有三种:user,public,none

http请求需要使用csrf,post表单数据默认带在kw参数中


使用特定数据库:需要在配置文件中定义dbfilter

odoo路由请求会受session影响,session中的有个db字段决定使用哪个database,如果没有database,odoo会使用所谓的魔法方式去找正在使用的一个



注意第二张图的最后一个判断,只有在一个数据库的情况才能找出来,我们要是有多个数据库就失效了。接着再看:


这个dbfilter参数可以过滤掉其他的数据库,使len(dbs)等于1


2、日志打印:

odoo代码中直接print看不到日志,自己写一个logging就行了

import logging  
  
_logger = logging.getLogger(__name__)  

_logger.debug("debug message for debugging only")  
_logger.info("information message to report important modular event")  
_logger.warning("warning message to report minor issues")  
_logger.error("error message to report failed operations")  
_logger.critical("critical message -- so bad that the module cannot work")


3、数据访问

odoo orm使用psycopg2,在路由中拿到cursor的方法如下:

str_sql = 'select * from stock_quant where product_id=%s'
http.request.env.cr.execute(str_sql, (product_id,))
result = http.request.env.cr.fetchall()

http.request.env.cr就是psycopg2的cursor,之后就可以进行操作了。

给一篇psycopg2使用介绍链接:http://blog.csdn.net/u013480495/article/details/50835363


4、使用jinja2渲染普通html页面,PackageLoader第一个参数9.0及以前版本写‘openerp.addons.xxx’或10.0以后写‘odoo.addons.xxx’



Jinja2使用教程:http://docs.jinkan.org/docs/jinja2/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值