从 Odoo8 中的父模型 class 对象访问子模型 class

Access child model class from parent model class object in Odoo8

有没有办法从父模型 class 对象访问子模型 class 对象,或者现在这个父模型 class 对象有什么子模型 class?

这是我的模型 classes:

class Content(models.Model):
    _name = 'content'

    title = fields.Char(string='Title', required=False)
    summary = fields.Char(string='Summary', required=False)
    description = fields.Char(string='Description', required=False)


class Video(models.Model):
    _name = 'video'
    _inherits = {'content': 'content_id'}

    duration = fields.Float(string='Duration', required=False)


class Image(models.Model):
    _name = 'image'
    _inherits = {'content': 'content_id'}

    width = fields.Float(string='Width', required=False)
    height = fields.Float(string='Height', required=False)

如果我有一个 "Content" class 的对象说 "content1" 有一个子对象 "image1",有没有办法访问那个 "image1"来自 "content1" 对象的对象或现在 "content1" 的类型是 "Image"?

内容将来可以有很多子 classes,所以我不想查询所有子 classes。

在 Odoo 中你可以双向旅行,但你的模型应该这样配置,

class Content(models.Model):
    _name = 'content'
    _rec_name='title'

    title = fields.Char(string='Title', required=False)
    summary = fields.Char(string='Summary', required=False)
    description = fields.Char(string='Description', required=False)
    video_ids : fields.One2many('video','content_id','Video')
    image_ids : fields.One2many('image','content_id','Video')

class Video(models.Model):
    _name = 'video'
    _inherit = 'content'

    duration = fields.Float(string='Duration', required=False)
    content_id = fields.Many2one('content','Content')

class Image(models.Model):
    _name = 'image'
    _inherit = 'content'

    width = fields.Float(string='Width', required=False)
    height = fields.Float(string='Height', required=False)
    content_id = fields.Many2one('content','Content')

并且您可以通过这种方式调用来访问子 类 的功能。

for video in content1.video_ids:
    ## you can access properties of child classes like... video.duration

for image in content1.image_ids:
    print image.width

同样可以调用子类的方法。

如果您的目标是做其他事情,请举例说明。