Python odoo I阶段

本文作者分享了自己入坑Python Odoo一个月的感受,强调Python的高效数据处理和Odoo的开源特性。文章介绍了Odoo的技术核心,包括model、view和security,并详细解释了Odoo中的多对多操作。此外,还提到了view视图的不同类型和security的用户组权限规则,鼓励读者通过实践和阅读代码来提升技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python与odoo

谁选择了谁?初评价

Python的优点:高效处理数据、简单、优雅
odoo的优点:开源、高度封装、开发高效
个人认为 ERP不属于互联网,数据和访问相对较为封闭,web的性能要求不会太高,因此Python可以堪当这个任务。
Odoo是Python写的一个开源orp,是用Python写的框架。odoo全面面向对象化,从ORM到view 和权限规则等都是类、对象、属性和方法去实现业务。

入坑一个月的感受–odoo初体验

odoo玩的666需要完成以下几点:

  1. Python基础 推荐雪峰老师的Python --看到面向对象高级编程https://www.liaoxuefeng.com/wiki/1016959663602400
  2. odoo入门 学完了Python之后怎么写odoo–看这个小黄书 https://odoobook.tnk-studio.org/
  3. odoo项目 一个项目不过瘾 不过硬 再来一发 https://www.cnblogs.com/ljwTiey/p/11470897.html
  4. odoo官方文档 我觉得做两个小项目再看官方文档比较好 https://www.odoo.com/documentation/10.0/
  5. 其他 --相信自己的努力
    要想进步就要读别人的代码–若读者不在项目中,推荐看odoo原生的应用;在项目上就看前辈们写的代码,虚心向他们请教。

记录并梳理一下知识点

odoo的技术核心现在看主要分为三块:model view security

model
常用方法
ORM中把每个class看成一张表由每个record(对象)组成,每个字段都是对象的属性,对象的各种方法就完成需求的各种业务处理。

  • many2one 字段多对1,字段名_id
    对象使用关联表的字段直接点一下就可以了
  • one2many 字段多对1,字段名_ids
    对象操作关联表的字段需要遍历后再操作
  • many2many 字段多对多,字段名_ids
    对象操作关联表的字段需要遍历后再操作
    重点来了 多对多操作 必须掌握
    CREATE = lambda values: (0, False, values) // 例:[(0, 0, new_ids)] 创建
    UPDATE = lambda id, values: (1, id, values) // 例:[(1, old_id, new_id)] 更新一个已经存在的并且关联的值的数据
    DELETE = lambda id: (2, id, False) // 例:[(2, old_id, False)] 删除数据但不断开链接
    FORGET = lambda id: (3, id, False) // 例:[(3, old_id, False)] 断开链接但不删除数据
    LINK_TO = lambda id: (4, id, False) // 例:[(4, old_id, False)] 链接 不可one2many
    DELETE_ALL = lambda: (5, False, False) // 例:[(5, False, False)] 删除全部 不可one2many
    REPLACE_WITH = lambda ids: (6, False, ids) // 例:[(6, False, new_ids)] 替换/更新(先5再4)
    0创1更2删3忘4恋5干净=》0创1更2删,3忘4链5全,6替换,45不可one
    现在有问题没有搞懂?!什么时候断开链接?什么时候需要加上链接呢?就是什么时候使用上面3和4的问题
    view
    view视图目前接触的有tree form kanban还有calendar search
    view与action、menuitem的关系:视图展示需要action发生,action绑定在menuitem上触发
    field中的一些属性要熟练应用: options widget attrs invisible groups domain eval ref 上面字段中的一些骚操作需要学习
    security
    业务中必须面对的是 用户组权限规则 分为三个维度
    用户组 在用户设置时给用户归属与某些权限组
    菜单 哪些菜单可以让某些用户组可用
    动作 哪些动作可以让某些用户组可用
    字段 哪些字段可以让某些用户组可看
    ir.model.access.csv文件说明了哪些用户组可以有哪些权限(CURD)tips:用户组为空则使对任务和用户组
    规则是用来细化修饰用户组,针对部分用户组有哪些具体权限:部分用户组用domain来筛选出来,规则直接字段给出如下:
	<record id="crm_xxx_rule" model="ir.rule">
            <field name="name">xxx用户组
            </field>
            <field name="model_id" ref="model_xxx"/>
            <field name="domain_force">[(1, '=', 1)]</field>
            <field name="groups"
                   eval="[(4, ref('group_xxx_all'))]"/>
            <field name="perm_read" eval="True"/>
            <field name="perm_write" eval="True"/>
            <field name="perm_create" eval="True"/>
            <field name="perm_unlink" eval="True"/>
        </record>

目前最大的感受:一定要多写代码,写多了发现并解决了问题才能让量变到质变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值