`

Openerp中的fields.related类型的理解

 
阅读更多

在某 model (设 _name="p.r") 的 _columns 有如下定义:

 

'o_line': fields.one2many('p.r.line', 'order_id', 'Order Lines'),

'product_id': fields.related('o_line', 'p_id', type='many2one', relation='p.p', string='Product')

 

这二个定义,则 OE 在建立表 p_r 时候,

因 order_line 为 one2many 类型,故 p_r 表中无 o_line 字段,另有一个关联“子表” p_r_line (由 p.r 模块定义) ;

product_id  为 related 的,故也不在 p_r 表中作为独立的字段,和 o_line 有关系,o_line 表的 p_id 字段 和 p_p 有 many2one 关系。

 

product_id 此处表示为显示:产品名称 的意思? 是这样的吗?

 

请大神留言。

 

  每个OpenERP的对象都有一些预定义方法,这些方法定义在基类osv.osv中。这些预定义方法有:
    基本方法:create, search, read, browse, write, unlink。 
    def create(self, cr, uid, vals, context={}) 
    def search(self, cr, uid, args, offset=0, limit=2000)  
    def read(self, cr, uid, ids, fields=None, context={})   
    def browse(self, cr, uid, select, offset=0, limit=2000)   
    def write(self, cr, uid, ids, vals, context={})   
    def unlink(self, cr, uid, ids)

    缺省值存取方法:default_get, default_set。
    def default_get(self, cr, uid, fields, form=None, reference=None)
    def default_set(self, cr, uid, field, value, for_user=False)

    特殊字段操作方法:perm_read, perm_write
    def perm_read(self, cr, uid, ids)
    def perm_write(self, cr, uid, ids, fields)

    字段(fields)和视图(views)操作方法:fields_get, distinct_field_get, fields_view_getdef fields_get(self, cr, uid, fields = None, context={})
    def fields_view_get(self, cr, uid, view_id=one, view_type=’form’,context={})
    def distinct_field_get(self, cr, uid, field, value, args=[], offset=0,limit=2000)
    记录名字存取方法:name_get, name_search
    def name_get(self, cr, uid, ids, context={})
    def name_search(self, cr, uid, name=”, args=[], operator=’ilike’,context={})

    缺省值存取方法:default_get, default_set
    def name_get(self, cr, uid, ids, context={})
    def name_search(self, cr, uid, name=, args=[], operator=’ilike’, context={})

    create方法:在数据表中插入一条记录(或曰新建一个对象的resource)。
    格式:def create(self, cr, uid, vals, context={})参数说明:
    vals: 待新建记录的字段值,是一个字典,形如: {‘name_of_the_field’:value, …}context (optional): OpenERP几乎所有的方法都带有参数context,context是一个字典,存放一些上下文值,例如当前用户的信息,包括语言、角色等。 context可以塞入任何值,在action定义中,有一个context属性,在界面定义时,可以在该属性中放入任何值,context的最初值通常 来自该属性值。返回值:新建记录的id。举例:
    id = pooler.get_pool(cr.dbname).get(‘res.partner.event’).create(cr, uid,{‘name’: ‘Email sent through mass mailing’,'partner_id’: partner.id,’description’: ‘The Description for Partner Event’})

    search方法:查询符合条件的记录。
    格式:def search(self, cr, uid, args, offset=0, limit=2000)参数说明:
    args: 包含检索条件的tuples列表,
    格式为: [('name_of_the_field', 'operator', value), ...]。可用的operators有:  =, >, <, <=, >=  in  like, ilike  child_of更详细说明,参考《OpenERP应用和开发基础》中的“域条件”有关章节。
    · offset (optional): 偏移记录数,表示不返回检索结果的前offset条。
    · limit (optional): 返回结果的最大记录数。返回值:符合条件的记录的id list。

    read方法:返回记录的指定字段值列表。
    格式:def read(self, cr, uid, ids, fields=None, context={})参数说明:
    ids: 待读取的记录的id列表,形如[1,3,5,...]· fields (optionnal): 待读取的字段值,不指定的话,读取所有字段。
    · context (optional): 参见create方法。
    返回值:返回读取结果的字典列表,形如 [{'name_of_the_field': value, ...}, ...]

    browse 方法:浏览对象及其关联对象。从数据库中读取指定的记录,并生成对象返回。和read等方法不同,本方法不是返回简单的记录,而是返回对象。返回的对象可 以直接使用”.”存取对象的字段和方法,形如”object.name_of_the_field”,关联字段(many2one等),也可以通过关联字 段直接访问“相邻”对象。例如:    addr_obj = self.pool.get(‘res.partner.address’).browse(cr, uid, contact_id)   
    nom = addr_obj.name   
    compte = addr_obj.partner_id.bank这段代码先从对象池中取得对象res.partner.address,调用它的方法browse,取 得id=contact_id的对象,然后直接用”.”取得”name”字段以及关联对象patner的银行 (addr_obj.partner_id.bank)。
    格式:def browse(self, cr, uid, select, offset=0, limit=2000)参数说明:
    select: 待返回的对象id,可以是一个id,也可以是一个id 列表。
    · offset (optional): 参见search方法。
    · limit (optional): 参见search方法。
    返回值:返回对象或对象列表。注意:本方法只能在Server上使用,由于效率等原因,不支持rpc等远程调用。

    write方法:保存一个或几个记录的一个或几个字段。格式:def write(self, cr, uid, ids, vals, context={})参数说明:
    · ids: 待修改的记录的id列表。
    · vals: 待保存的字段新值,是一个字典,形如: {‘name_of_the_field’: value, …}。
    · context (optional): 参见create方法。
    返回值:如果没有异常,返回True,否则抛出异常。
    举例:self.pool.get(‘sale.order’).write(cr, uid, ids, {‘state’:'cancel’})


    unlink方法:删除一个或几个记录。
    格式:def unlink(self, cr, uid, ids)参数说明:
    · ids: 待删除的记录的id列表。
    返回值:如果没有异常,返回True,否则抛出异常。

    default_get方法:复位缺省值的字段列表。
    • form (optional): 目前似乎未用(5.06版)。
    • reference (optional): 目前似乎未用(5.06版)。
    返回值: 字段缺省值,是一个字典,形如: {‘field_name’: value, … }。
    举例:self.pool.get(‘hr.analytic.timesheet’).default_get(cr, uid, ['product_id','product_uom_id'])

    default_set方法:重置字段的缺省值。
    格式: def default_set(self, cr, uid, field, value, for_user=False)
    参数说明:
    • field: 待修改缺省值的字段。
    • value: 新的缺省值。
    • for_user (optional): 修改是否只对当前用户有效,还是对所有用户有效,缺省值是对所有用户有效。
    返回值: True     

分享到:
评论

相关推荐

    PyPI 官网下载 | anybox.recipe.openerp-1.0.2.tar.gz

    在实际使用"anybox.recipe.openerp"时,开发者需要先将其解压并安装到Python环境中,然后在他们的Buildout配置文件中引用这个配方,以简化Odoo应用的构建流程。这样可以自动化处理Odoo模块的编译、测试和部署,提高...

    PyPI 官网下载 | anybox.buildbot.openerp-0.8.tar.gz

    《PyPI官网下载 | anybox.buildbot.openerp-0.8.tar.gz——Python库解析》 在Python的生态系统中,PyPI(Python Package Index)是最重要的资源库,它为全球开发者提供了海量的Python库,方便他们下载和分享代码。...

    在CentOS中安装OpenERP的教程.docx

    在CentOS中安装OpenERP的教程.docx

    Python库 | anybox.migration.openerp-0.4.tar.gz

    python库。 资源全名:anybox.migration.openerp-0.4.tar.gz

    PyPI 官网下载 | anybox.buildbot.openerp-0.5.tar.gz

    资源来自pypi官网。 资源全名:anybox.buildbot.openerp-0.5.tar.gz

    Python库 | anybox.recipe.openerp-1.6.3.tar.gz

    在`buildout.cfg`配置文件中,定义`anybox.recipe.openerp`部分,指定Odoo版本、模块列表、服务器配置等。然后运行`bin/buildout`命令,Buildout会自动处理其余的工作,包括下载、安装和配置。 五、实际应用场景 1...

    OpenERP使用攻略.rar

    零基础使用OPENERP软件,各模块丰富讲解介绍,仅供参考。

    OpenERP开发攻略.rar

    基础入门学习OPENERP软件开发,任何人或机构可将本书内容用于学习、研究、教育,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本书作者的合法权利,仅供参考。

    openERP 7.0使用手册 第五章 采购基本操作

    OpenERP 7.0的采购管理是企业资源规划系统中一个重要的组成部分,它涵盖了从采购需求产生到完成付款的全过程。本章主要讨论了采购的基本操作,包括采购订单的创建、处理流程以及特殊情况的处理。 首先,采购的触发...

    openerp.zip_openERP

    OpenERP(后更名为Odoo)是一款开源的企业资源规划(ERP)软件,用于管理企业的各种业务流程,包括财务、采购、库存、销售...随着对OpenERP框架的深入理解,开发者能够构建出更复杂、更符合企业需求的定制化解决方案。

    OpenERP应用和开发基础文档及相关资源

    OpenERP应用和开发基础 OpenERP应用和开发基础(第一章).pdf OpenERP应用和开发基础(第二章).pdf OpenERP应用和开发基础(第三章).pdf OpenERP应用和开发基础(第四章).pdf OpenERP应用和开发基础(第五章).pdf OpenERP...

    OpenERP中文开发手册.pdf

    openerp 技术开发文档,快速查找工具

    Taobao OpenERP Connector.zip

    Taobao OpenERP Connector ,Taobao OpenERP Connector功能:接受淘宝主动通知,自动添加、确认订单、发货等。...

    OpenERP.rar_openERP

    这个压缩包文件“OpenERP.rar_openERP”包含了关于OpenERP的应用和开发基础的详细资料,主要以“OpenERP应用和开发基础_091224.pdf”这本书的形式呈现。 首先,我们要理解OpenERP的核心概念。它是一个模块化的系统...

    openerp开发环境

    - 理解OpenERP/Odoo的模块结构,每个模块包含XML、Python、JavaScript、CSS和静态文件(如图片)。 - 使用`openerp/models.py`定义模型,`openerp/views.xml`设计视图,`openerp/static`存放前端资源,`openerp/...

    PyPI 官网下载 | openerp_proxy-1.0.0.tar.gz

    资源来自pypi官网。 资源全名:openerp_proxy-1.0.0.tar.gz

    openerp.7z

    openerp.7z

    OPENERP基础设置

    网上找到的一些OPENERP资料... 第一节 系统概述 3 1.1、系统功能 3 1.2、业务流程图 4 第二节 基础设置 5 2.1、单据设置 5 2. 2、基本代码维护 15 2. 3、部门维护 16 2. 4、职员维护 16 2. 5、仓库维护 17 2. 6、...

    Centos5.3下搭建OpenERP平台.doc

    首先,你需要通过`yum upgrade`命令更新CentOS的所有包,以确保系统软件是最新的,这有助于避免在后续安装过程中遇到兼容性问题。 2. **升级Python**: OpenERP 5.0.15需要Python 2.6或更高版本。因此,你需要...

    openerp-logistics-book.complete.pdf

    openerp-logistics-book.complete.pdf

Global site tag (gtag.js) - Google Analytics