Я пытаюсь понять модели 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". Как мне получить объект Publisher? Это просто mybook.publisher?
Также в Django я мог определить обратную связь (используя «related_name»), чтобы publisher.books.all () дал мне все обратные отношения, то есть все книги для издателя. Что такое эквивалент в Odoo? Или в Odoo это тот случай, когда я должен явно объявить отношение One2many от издателя к книге в дополнение к Many2one от книги к издателю?
В Odoo также похоже, что вы можете определить отношение One2many:
class Publisher(models.model):
published_books = fields.One2many('whatever.book','author',string='Published books')
Итак, если у меня есть объект издателя «издатель», то как мне получить список опубликованных книг издателя? Это просто publisher.published_books?
Наконец, у нас есть поля. Many2many
class Store(models.model):
book_ids = fields.Many2many('whatever.book',string='Books')
В этом случае Магазин продает много книг, а Книга может быть во многих магазинах.
Так как мне получить книги в магазине? Как я могу получить все магазины для данной книги?
Кроме того, если я хочу book.stores, а также store.books, означает ли это, что я должен объявить поля fields.Many2many в Book и Storeмодели?
Я в шоке, это так сложно найти в документации по Odoo.