我试图理解Odoo的模型-我很了解Django,但是在理解Odoo时遇到了困难,主要是因为文档通常太糟糕了。
假设我有一些这样的模型:
class Publisher(models.model):
name = fields.Char('Name',help='Publisher name')
...
class Book(model.model):
publisher = fields.Many2one('whatever.publisher',string='Publisher')
现在假设我有一个Book对象“ mybook”。如何获得发布者对象?仅仅是mybook.publisher吗?
在Django中,我也可以定义一个反向关系(使用“ related_name”),以便Publisher.books.all()会给我所有反向关系,即出版社的所有书籍。 Odoo中的等效物是什么?还是在Odoo中,除了从Book到Publisher的Many2one之外,我还必须明确声明从Publisher到Book的One2many关系?
在Odoo中,您似乎还可以定义一个One2many关系:
class Publisher(models.model):
published_books = fields.One2many('whatever.book','author',string='Published books')
因此,如果我有一个出版商对象“ publisher”,那么我如何获得该出版商的已出版书籍清单?仅仅是Publisher.published_books?
最后我们有字段。Many2many
class Store(models.model):
book_ids = fields.Many2many('whatever.book',string='Books')
在这种情况下,一家商店出售许多书籍,而一本书可以在许多商店中使用。
那我怎么在商店里买书呢?如何获得给定书的所有商店?
同样,如果我想要book.stores和store.books,这是否意味着我必须声明一个字段。Book和Store模型中的Many2many关系?
我非常震惊,这在Odoo文档中很难找到。