Працюючи та/або програмуючи в Odoo ви часто зустрічаєтесь з поняттям "Зовнішній ID". Наприклад, при експорті або імпорті даних. В програмуванні - ще частіше: в описах представлень, прав доступу і таке інше. Що ж собою являють чи магічні "Зовнішні ідентифікатори". Насправді це записи в моделі ir.model.data, які посилаються абсолютно на всі сутності, які є в системі. Побачити їх з інтерфейсу можна в розділі "Налаштування"
Розглянемо структуру Зовнішнього ідентифікатора
1 - Повий ідентифікатор (складається з назви модуля та унікального строкового значення)
2 - Модуль, в якому ідентифікатор створений (для створених автоматично значення модулю буде __export__ )
3 - Унікальне строкове значення (тут можуть бути лише літери, цифри і символ підкреслення, наявність крапки привиде до помилки, бо крапкою відділяється назва модуля)
4 - Відображення об'єкту
5 - Назва моделі (так, як вона називається в python)
6 - ID об'єкту в моделі
7 - Посилання на об'єкт (Обчислювальне поле)
Як використовуються при створенні модулів
У створенні та наслідуванні представлень, дій, меню тощо
Заповнені даних
У python коді для отримання, зміни або використання в генерації представлень, дій, звітів тощо
Зовнішні ідентифікатори моделей
Тут важливо зауважити, що моделі в Odoo - це також записи в базі даних. Тобто усі моделі, які створюються python кодом все одно створюють запис в моделі
Ця модель об'явлена у модулі base, а згенерований Зовнішній ідентифікатор виглядає:
- Префікс model_
- Назва моделі, де крапки замінені на символ підкреслення
Перейдемо на запис
Як бачимо запис з ID 79 має якраз посилання на модель res.partner
1 - зовнішній ідентифікатор прав запису
2 - зовнішній ідентифікатор моделі (як описано вище)
3 - зовнішній ідентифікатор групи
А сам файл має назву ir.model.access.csv - ця назва файлу вказує, що данні цього файлу мають буди записані в модель ir.model.access