Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 7167|回复: 0
打印 上一主题 下一主题

odoo openerp学习积累8.0

[复制链接]

119

主题

119

帖子

566

积分

高级会员

Rank: 4

积分
566
跳转到指定楼层
楼主
发表于 2016-10-7 22:04:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
@api.one
def assign(self):
self.pool['apply.delivery'].write(self._cr, self._uid, self._context.get('active_ids'),{'assigned_shop_id':self.user_id.id},context=self._context)

新写法用 旧的API向id列表所在的记录中写入数据

通过 on_change 返回数据写法如下。是xml和py文件通信的一种方式

def on_change_date(self, cr, uid, ids, accept, context=None):
if accept:
return { 'value': {'shop_accept_datetime': time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) }}  
else:
return { 'value': {'shop_accept_datetime':""}}

通过 on_change返回数据外还可以返回其他的数据类型。其他形式的
数据如domain 和warning等都是很有用的东西


def onchange_province(self, cr, uid, ids,country, city,province, context=None):
#为地址填写时方便,当选定省时 ,市区的列表里面只有所选省的
if province:
if city:
if self.env['all.city'].search([('city_name','=',city),('province_name','=',province)]):
return {'domain': {'city':[('province_name','=',province)]}}
return {'domain': {'city':[('province_name','=',province)]},
'value':{'city':"",'country':""}}

在openerp中可以通过 _constraints 和_sqlconstraints 来添加一些约束条件,当条件不满足就返回错误
否则就。下面是实例的代码,(9.0使用新的API 估计就不能这么用了)


_constraints=[(check_phone,u'手机号码和电话号码不能同时为空',['mobile_number','phone_number']),
(check_estimated_ship_date,u'期望发货日期必须比当前日期要大',['estimated_ship_date'])]

def check_phone(self, cr, uid, ids, context=None):
for apply_delivery in self.browse(cr,uid,ids,context=context):
if apply_delivery.mobile_number or apply_delivery.phone_number:
return True
return False
def check_estimated_ship_date(self, cr, uid, ids, context=None):
apply_delivery =self.browse(cr,uid,ids,context=context)
estimated_ship=time.strptime(apply_delivery[0].estimated_ship_date,'%Y-%m-%d %H:%M:%S')
if time.mktime(estimated_ship)
return False
return True

openerp中relation 字段的用法

第一个参数是要相关的本类中的另外的字段。第二个参数表示要相关的字段,也就是本字段的值。l
第三个参数是相关字段的关系。relation表示和那个类(表)相关。string也就是label的显示值。
readonly=True,store=True 是否存储,是否可读,


'product_id':fields.related('code', 'product_id', type='many2one', relation='product.product', string='产品ID',readonly=True),
'product_name':fields.related('code', 'product_id', type='many2one', relation='product.product', string='产品名称',readonly=True,store=True),


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-4-26 06:37 , Processed in 0.009937 second(s), 10 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表