odoo学习笔记
-
editable=“bottom” 可以直接点击tree试图进行修改,无需跳转到form表单,该属性只能使用在一对多中的多字段
-
(0, _ , {‘field’: value})新建一条记录并将其与之关联
(1, id, {‘field’: value})更新已关联记录的值
(2, id, _)移除关联并删除 id 关联的记录
(3, id, _)移除关联但不 删除 id 关联的记录。通常使用它来删除many-to-many 字段的关联记录
(4, id, _)关联已存在记录,仅适用于 many-to-many 字段
(5, _, _)删除所有关联,但不删除关联记录
(6, _, [ids])替换已关联记录列表为此处的列表 -
odoo.api.depends(*args)和store=True,compute,onchange连用,是为了每当onchange字段发生改变时都会对其进行写入数据库操作,不然不会写入数据库
-
@api.depends和@api.onchange区别,de是可以跨表的,但是on不能跨表,只能在本表中
-
python odoo-bin scaffold auth_dingtalk myaddons 新加一个模块
-
python odoo-bin -d odoo13_5 -i auth_dingtalk 安装模块
-
python odoo-bin --update contract_app 更新模块
-
进入env的shell环境,执行以下命令:
1、python odoo-bin shell -c odoo.conf -d odoo12
2、a= env[‘ir.module.module’].search([(‘name’,‘like’,‘kongjian’)])
3、a.button_immediate_uninstall()
kongjian 即为示例模块名称,替换成你的模块名称即可删除该模块。 -
直接隐藏该字段
-
print(’\r{:^3.0f}%[{}->{}]’.format(c, a, b), end = ‘’) {:^3.0f}四舍五入 \r在本行刷新,end=’'不换行
-
participant_process_ids = fields.One2many(‘contract.participant.process’, ‘participant_department_id’,string=‘部门执行流程’)
fuze_manager = fields.Char(related=‘participant_process_ids.principal_name.name’, readonly=True, string=‘分配负责人’) 获取关联表中的字段显示在xml -
去除快速创建
-
name_mapping = self.env[‘contract.name.mapping’].search([(‘name’, ‘=’, self.env[‘hr.employee’].search([(‘user_id’, ‘=’, self.user_id.id)]).name)]).abbreviation
odoo通过env操作数据库 - 去除创建和修改按钮
-
self.user_has_groups(“contract_base.baoxiao_user”) 判断当前用户是否在这个权限组中
-
self.parent_user_ids = [(6, 0, [one_.user_id.id] + [i.id for i in self.parent_user_ids])] 添加数据
-
oe_read_only, oe_edit_only:只在相应的模式下显示,read_only的意思是只有在非编辑状态下才显示,edit_only是只有在编辑状态下显示。
-
隐藏字段名
-
-c odoo.conf --dev=all pycharm配置启动脚本自动更新xml
-
<group expand="0" string="Group By"> <filter string="合同负责人" name="principal_id" domain="[]" context="{'group_by': 'principal_id'}"/> <filter string="合同执行状态" name="stage_id" domain="[]" context="{'group_by': 'stage_id'}"/> <filter string="实施执行状态" name="imp_state" domain="[]" context="{'group_by': 'imp_state'}"/> <filter string="创建日期" name="create_date" domain="[]" context="{'group_by': 'create_date'}"/> </group>
添加预定义分组,创建日期会有年月日的效果
-
track_visibility=‘onchange’ 这个是结合message使用的, 是把更改的一些信息显示到下面的message中.
track_visibility=‘always’ 用户不更改信息的是时候,message也会记录下这些信息. -
odoo的search时间段
modle_list = self.env[‘model’].search(
[’&’,(‘field1’,’=’,None), (‘field2’,’!=’,None),
‘&’,(‘field3’,’>=’,self.start_datetime), (‘field3’,’<=’,self.end_datetime),
‘|’,(‘field4’,’!=’,‘delivered’),(‘field4’, ‘=’, None),
]) -
后端返回视图:
return {
"type": "ir.actions.act_window",
"view_mode": "form",
"res_id": new.id,
"res_model": "an.replenish.order",
"name": "借用单",
"target": "current",
"mode": 'read',
"views": [[form_id, "form"]],
"context": {'create': False}
}
- 当使用onchange修改只可读的字段是,需要在视图中的该字段加上 force_save = ‘1’