Openerp 从另一个数据库获取字段日期
在ticket.py中。我有两节课。类deposit.line和resu partner(继承)。我想获取类deposit.line的日期,但它在类res_partner(继承)中的功能 但其现有的打印结果是错误的。怎么了?请更正我的密码 PS: 我的解释不太好。但是看看我的代码,肯定知道我的解释。 这是我的完整代码:Openerp 从另一个数据库获取字段日期,openerp,Openerp,在ticket.py中。我有两节课。类deposit.line和resu partner(继承)。我想获取类deposit.line的日期,但它在类res_partner(继承)中的功能 但其现有的打印结果是错误的。怎么了?请更正我的密码 PS: 我的解释不太好。但是看看我的代码,肯定知道我的解释。 这是我的完整代码: class deposit_line(osv.osv): _name ="deposit.line" _description = "Deposit Line"
class deposit_line(osv.osv):
_name ="deposit.line"
_description = "Deposit Line"
_columns = {
'name': fields.char('Name', size=64),
'ref': fields.char('Reference', size=64),
'amount': fields.float('Amount'),
'date': fields.date('Date', required=True),
'deposit_id': fields.many2one('res.partner', 'Deposit ', required=True, ondelete='cascade'),
}
deposit_line()
class res_partner(osv.osv):
_inherit = 'res.partner'
def _compute_age(self, cr, uid, ids,date_birth,age,arg, context=None):
result = {}
for r in self.browse(cr, uid, ids, context=context):
age=0
if r.date_birth:
age = (datetime.now()-datetime.strptime(r.date_birth,"%Y-%m-%d")).days/365.25
result[r.id] = age
return result
def _compute_dept(self, cr, uid, ids, deposit, available, arg, context=None):
result = {}
for r in self.browse(cr, uid, ids, context=context):
avail=0
temp = r.available
if r.deposit:
avail = r.deposit + temp
result[r.id] = avail
return result
def _compute_dept2(self, cr, uid, ids, amount, arg, context=None):
result = {}
obj2 = self.pool.get('deposit.line')
for record in obj2.deposit_line:
temp1 = record.date
print temp1
print result
return result
_columns = {
'speaker': fields.boolean('Leader'),
'event_ids': fields.one2many('event.event','main_speaker_id', readonly=True),
'event_registration_ids': fields.one2many('event.registration','partner_id', readonly=True),
'airline': fields.boolean('Airlines'),
'hotel': fields.boolean('Hotel'),
'date_birth': fields.date('Date of Birth'),
'id_no': fields.char('ID. No', size=20),
'id_expired': fields.date('Expired Date'),
'sex':fields.selection([('male','Male'),('female','Female')],'Sex'),
'age' : fields.function(_compute_age, type='float', method=True, store=True, string='Age', readonly=True),
'deposit': fields.function(_compute_dept2, type='float', method=True, store=True, string='Deposit', readonly=True),
'available': fields.function(_compute_dept, type='float', method=True, store=True, string='Available', readonly=True),
'deposit_ids':fields.one2many('deposit.line', 'deposit_id', 'Deposit Line'),
}
res_partner()
第3行之后,您忘了:
obj2.browse(cr, uid, ids, context=context)
您应该学习使用调试器:
添加行
导入pdb;pdb.set_trace()
在要放置断点的位置。当Python到达断点时,它会在控制台上停止,并出现(pdb)
提示。键入p obj
打印变量obj,n
转到下一条指令,键入h
获取帮助。您可能会在这里和中找到更多信息。在第3行之后,您忘记了:
obj2.browse(cr, uid, ids, context=context)
您应该学习使用调试器:
添加行
导入pdb;pdb.set_trace()
在要放置断点的位置。当Python到达断点时,它会在控制台上停止,并出现(pdb)
提示。键入p obj
打印变量obj,n
转到下一条指令,键入h
获取帮助。您可能会在这里和。中找到更多信息,因为在res.partner
模型中定义了deposit\u line
的one2many
字段,您不需要直接访问deposit\u line
对象
def _compute_dept2(self, cr, uid, ids, amount, arg, context=None):
result = {}
for partner in self.browse(cr, uid, id, context=context)
result[partner.id]=0
for deposit_line in partner.deposit_ids:
result[partner.id] += deposit_line.amount
return result
由于在
res.partner
模型中定义了deposit\u line
的one2many
字段,因此不需要直接访问deposit\u line
对象
def _compute_dept2(self, cr, uid, ids, amount, arg, context=None):
result = {}
for partner in self.browse(cr, uid, id, context=context)
result[partner.id]=0
for deposit_line in partner.deposit_ids:
result[partner.id] += deposit_line.amount
return result
当然,我会编辑我的第一个帖子。我非常需要你的帮助。当然,我会编辑我的第一篇帖子。我非常需要你的帮助。_compute_dept2中的问题我得到的“browse_record_list”对象没有属性“depost_line”是否因为我的表使用了表继承?答案不正确。
id
用于res.partner
对象。它不能用于浏览存款行
对象。检查我的答案,了解如何到达存款行
记录。我得到的“浏览记录列表”对象没有“存款行”属性是否因为我的表使用了表继承?答案不正确。id
用于res.partner
对象。它不能用于浏览存款行
对象。查看我的答案,了解如何到达存款行记录。