Connectors

Welcome!

This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.

2

نحوه کارکرد mapper و یا نگاشت در ماژول Connector در اودوو ۱۷ برای کار با فیلدهای رابطه‌ای چطور مدیریت می‌شود؟

آواتار
مصطفی برمشوری

در عمل سه نو فیلد رابطه‌ای در ORM اودوو ۱۷ وجود دارد که عبارتند از:

  1. Many2Many
  2. Many2One
  3. One2Many

زمانی که داده‌های پیچیده‌ای از خارج از اودوو می‌خواهد به اودوو وارد شود، نیاز است این فیلدهای رابطه‌ای هم مورد توجه قرار بگیرید. چه روش‌هایی برای برخورد با این فیلدهای رابطه ای در ماژول Connector از اودوو ۱۷ در نظر گرفته شده است؟

2 نظرها
آواتار
رها کردن
آواتار
مصطفی برمشوری
-

برای فیلدهای رابطه‌ای many2many و one2many که به صورت لیست هست، روش نگاشت فرزند و یا Children Mapper کار می‌کنه. اما برای حالت Many2one نمی‌دونم چه راهی در نظر گرفته شده.

آواتار
مصطفی برمشوری
-

استفاده از تابع‌هایی مثل m2o_to_external و external_to_m2o و follow_m2o_relations هم فرضیاتی دارد که باید حتما در پیاده سازی در نظر گرفته شود. من هنوز متوجه نشدم که فرضیاتی که در این موارد در نظر گرفته شده چی هست.

1 پاسخ
2
آواتار
ساناز میرباقری
بهترین پاسخ

میتونید از تابع های  m2o_to_external و external_to_m2o و follow_m2o_relations استفاده کنید
 تابع m2o_to_external یک تابع کمکی (modifier) است که برای کار با فیلدهای many2one در کانکتورها استفاده می‌شود و هدف اصلی آن تبدیل رکورد many2one به شناسه‌ی خارجی (external ID) است.

تابع external_to_m2o برای نگاشت شناسه‌های خارجی به رکوردهای Odoo استفاده می‌شود، به خصوص برای فیلدهای many2one. هدف این تابع این است که شناسه‌های خارجی که از سیستم‌های خارجی (مثل Magento) دریافت می‌شوند، به رکوردهای داخلی Odoo تبدیل کند.

تابع follow_m2o_relations در Odoo برای پیمایش و دنبال کردن روابط many2one استفاده می‌شود و در نهایت مقدار فیلد نهایی را برمی‌گرداند. این تابع به شما امکان می‌دهد به طور مستقیم از یک فیلد مرتبط (که ممکن است چندین سطح رابطه many2one داشته باشد) به مقدار مورد نظر دسترسی پیدا کنید.

داکیومنت کانکتور mapper

آواتار
رها کردن