• odoo开发笔记--模型中常用的方法


    create方法
    在数据表中插入一条记录(或新建一个对象的resource)
    格式:
    def create(self,cr,uid,vals,context={})
    参数:
    vals:待新建记录的字段值,是一个字典。
    context(optional):OpenERP几乎所有方法都带参数context,context是一个字典,存放一些上下文值
    返回值:新建记录的id

    search方法

    查询符合条件的记录
    格式:
    def search(self,cr,uid,args,offset=0,limit=2000)
    参数:
    args:包含检索条件的tuple列表,格式为[('name_of_the_field','operators',value),...]。可用的operators有:=,<,>,<=,>=,in,like,child_of
    offset(optional):偏移记录数,表示不返回检索结果的offset条
    limit(optional):返回结果的最大记录数
    返回值:符合条件的记录的id list

    read方法

    返回记录的指定字段值列表
    格式:def read(self,cr,uid,ids,fields=None,context={})
    参数:
    ids:待读取的记录的id列表,比如[1,3,5]
    fields(optional):待读取的字段值,不指定则读取所有字段
    context(optional):context是一个字典,存放一些上下文值
    返回值:
    返回读取结果的字典列表

    browse方法

    浏览对象及其关联对象。从数据库中读取指定的记录,并生成对象返回。和read等方法不同,本方法不止返回简单的记录返回对象。返回的对象可以直接使用‘.’存取对象的字段和方法,也可以通过关联字段直接访问“相邻”对象。
    格式:
    def browse(self, cr, uid, select, offset=0, limit=2000) 
    例:
    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”字段以及关联对象partner的银行(addr_obj.partner_id.bank)
    参数:
    select:待返回的对象id,可以是一个id或是一个id列表
    offset(optional)偏移记录数,表示不返回检索结果的offset条
    limit(optional):返回结果的最大记录数
    返回值:返回对象或对象列表
    注意:
    本方法只能在Server上使用,不支持rpc等远程调用

    write方法
    保存一个或几个记录的一个或几个字段
    格式:def write(self,cr,uid,ids,vals,context={})
    参数:
    ids:待修改的纪录的id列表
    vals:待保存的字段新值,是一个字典
    context(optional):context是一个字典,存放一些上下文值
    返回值:
    没有异常情况下返回True,否则抛出异常


    unlink方法

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


    default_get方法

    复位一个或多个字段的缺省值
    格式:def default_get(self,cr,uid,fields,form=None,reference=None)
    参数:
    fields:希望复位缺省值的字段列表
    返回值:
    字段缺省值,是一个字典

    default_set

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

    错误、警告、提示

    检察业务逻辑中的错误,终止代码执行,显示错误或警告信息。
    raise osv.except_osv(_("Error!"),_("Error Message."))


    日期时间方法

    日期格式化字符串:DATE_FORMAT = “%Y-%m-%d”
    日期时间格式化字符串:DATETIME_FORMAT = “%Y-%m-%d %H:%M:%S”
    OpenERP对象中字段赋值为当前日期:fieds.date.context_today(),fields.data.context_today(cr,uid,context=context) ,fields.date.today()
    OpenERP对象中字段赋值为当前时间:fieds.datetime.now(),fields.datatime.context_timestamp(cr,uid,datetime.now(),context=context) 


    Python中获取当前日期:datetime.data.today()
    Python中获取当前时间:datetime.datetime.now()


    XML文件


    模块目录下的xml文件用于模块安装/更新时初始化/更新数据库, 例如:
    定义初始和示例数据;
    定义视图;
    定义报表;
    定义工作流;

    OpenERP对象可以通过使用该对象相应的XML文件插入到相应的PostgreSQL表中, 一个OpenERP XML文件的一般结构如下:

    [python] view plain copy
     
    1. <?xml version="1.0"?>  
    2. <openerp>  
    3.     <data>  
    4.         <record model="model.name_1" id="id_name_1">  
    5.             <field name="field1"> "field1 content" </field>  
    6.             <field name="field2"> "field2 content" </field>  
    7.             (...)  
    8.         </record>  
    9.         <record model="model.name_2" id="id_name_2">  
    10.             (...)  
    11.         </record>  
    12.         (...)  
    13.     </data>  
    14. </openerp>  

    field标记的属性如下:

    name: 必需的, 字段名
    eval: 可选的, 一个python表达式, 通过它计算值
    ref: 对本文件中出现过的id的引用
    model: 搜索时使用的模型
    search: 一个查询

    转载于:https://www.cnblogs.com/hellojesson/p/8405816.html

  • 相关阅读:
    Chamfer Distance--倒角距离
    javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    mysql单个索引和联合索引的区别
    鸽一下
    笔记:关于 INT1 INT0 中断说明记录 (2020-07-16)[85.22%]
    使用 Git 管理 KiCad EDA 项目文件 [2020-06-28][26.77%]
    从单片机基础到程序框架 2019版(2020-07-04)[12.66%]
    KiCad Pcbnew 中现代工具箱 (2020-06-24)[98.33%]
    【营养研究一】鸡蛋和牛奶的营养对比 (2020-06-23)[95.89%]
    git 忽略上传指定文件 命令
  • 原文地址:https://www.cnblogs.com/twodog/p/12137567.html
Copyright © 2020-2023  润新知