ワンクリックで
odoo-module-interaction
Interact with other modules, create link modules, and trigger cross-module logic.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Interact with other modules, create link modules, and trigger cross-module logic.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
A router skill that identifies and recommends the most appropriate Odoo skill for a given user request.
Create HTTP endpoints for Websites and APIs.
Comprehensive guide to Odoo fields, including basic, relational, computed, and robust technical features (indexing, company_dependent, properties).
Master the Odoo ORM for data manipulation, environment management, and CRUD operations.
Configure Access Control Lists (ACLs) using CSV files.
Write automated tests using TransactionCase and Form emulators to ensure code quality.
| name | Odoo Module Interaction |
| description | Interact with other modules, create link modules, and trigger cross-module logic. |
Extend functionality by leveraging other installed modules (e.g., creating an Invoice from the Real Estate module).
A "Link Module" is a module designed to glue two other independent modules together.
__manifest__.py, depend on both modules.
'depends': ['estate', 'account'],
estate doesn't need to know about account, and vice-versa.To extend logic from another module, inherit the model and override methods.
Example: Trigger Invoice Creation on Property Sale
class EstateProperty(models.Model):
_inherit = "estate.property"
def action_sold(self):
# 1. Call super to execute original logic (set state to sold)
res = super().action_sold()
# 2. Add new logic (Create Invoice)
for prop in self:
self.env["account.move"].create({
"partner_id": prop.buyer_id.id,
"move_type": "out_invoice",
"line_ids": [
Command.create({
"name": prop.name,
"quantity": 1,
"price_unit": prop.selling_price * 0.06,
}),
Command.create({
"name": "Administrative Fees",
"quantity": 1,
"price_unit": 100.00,
}),
],
})
return res
Use self.env['model.name'].create(values_dict).
Many2one: Pass the integer ID (e.g., 'partner_id': 5).One2many/Many2many: Use Command tuples (e.g., [Command.create({...})]).print() or a debugger to verify method overrides are triggering.