从 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
同样可以调用子类的方法。
如果您的目标是做其他事情,请举例说明。
有没有办法从父模型 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
同样可以调用子类的方法。
如果您的目标是做其他事情,请举例说明。