Openerp 从odoo中的其他模型调用方法和字段

Openerp 从odoo中的其他模型调用方法和字段,openerp,odoo-8,Openerp,Odoo 8,这是我的第一个模型、方法和字段 class overtime(models.Model): _name = 'overtime' def calc_overtime(self, start_date, end_date): #import pdb;pdb.set_trace() f = '%Y-%m-%d %H:%M:%S' d1 = datetime.strptime(start_date, f) d2 = datetime.str

这是我的第一个模型、方法和字段

class overtime(models.Model):
   _name = 'overtime'

   def calc_overtime(self, start_date, end_date):
      #import pdb;pdb.set_trace()
      f = '%Y-%m-%d %H:%M:%S'
      d1 = datetime.strptime(start_date, f)
      d2 = datetime.strptime(end_date, f)
      timeDiff = d2-d1
      hours = float(timeDiff.total_seconds()/3600)
      return hours

   start_date = fields.Datetime('Start Date', required=True, default=lambda *a : time.strftime("%Y-%m-%d"+" "+"%H:%M:%S")
             , readonly=True, states={'draft': [('readonly', False)]})
   end_date = fields.Datetime('End Date', required=True, default=lambda *a : time.strftime("%Y-%m-%d"+" "+"%H:%M%S")
             , readonly=True, states={'draft': [('readonly', False)]})
这是我的第二个模型、方法和领域

class overtime_details(models.Model):
    _name='overtime_details'


    def function(self):
        "calling calc_overtime"

    ovrtm = fields.Float('Overtime Hour(s)')
如何使用“self.pool.get”在加班详细信息类中调用calc_加班方法,将开始日期和结束日期作为参数
或“self.env”。并将结果作为ovrtm字段的值。谢谢你,我想你不需要在第一节课上计算小时数,函数应该在第二节课上,并添加一个One2many字段

课余时间(models.Model): _名称=‘加班’

 start_date = fields.Datetime('Start Date', required=True, default=lambda *a : time.strftime("%Y-%m-%d"+" "+"%H:%M:%S")
           , readonly=True, states={'draft': [('readonly', False)]})
 end_date = fields.Datetime('End Date', required=True, default=lambda *a : time.strftime("%Y-%m-%d"+" "+"%H:%M%S")
           , readonly=True, states={'draft': [('readonly', False)]})



class overtime_details(models.Model):
  _name='overtime_details'

 def compute_houres(self, start_date, end_date):
    d1 = self.overtime_id.end_date
    d2 = self.overtime_id.start_date
    f = '%Y-%m-%d %H:%M:%S'
    d1 = datetime.strptime(start_date, f)
    d2 = datetime.strptime(end_date, f)
    timeDiff = d2-d1
    hours = float(timeDiff.total_seconds()/3600)
    self.ovrtm = hours


  overtime_id = fields.Many2one('overtime', 'Réference', ondelete='cascade'),
  ovrtm = fields.Float(compute='compute_houres')

谢谢,你的回答解决了我的问题。但是如果我仍然想从第一个类调用func,您能给出解决方案吗?参见