توسعه Odoo

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.

8

چگونه می توانم یک رکورد را با شناسه خارجی آن در کد بازیابی کنم در اودوو ۱۶ و ۱۷ نسخه ویراوب ۱۲۳؟

من میخواستم یک رکورد رو با یک آیدی خاص خارجی(External ID) ایجاد کنم و اینکه بتونم اون رو بازیابی کنم میشه بهم  توضیح بدین این چطوری میتونه انجام بشه؟

آواتار
انصراف
1 پاسخ
7
بهترین پاسخ

زمانی که شما محصولی را وارد محصولات میکنید به صورت مثال یک آیدی خارجی به اون میدید و زمانی که دارین این رکورد یا محصول رو وارد میکنید اون رو به عنوان آیدی خارجی به سیستم معرفی میکنید.

اول باید رکوردی رو که میخواین رو وارد کنید در هر مدل داده ای که باشین فرقی نمیکنه وارد قسمت علاقه مندی ها که در عکس معلومه میشید و گزینه ورود رکورد رو میزنید

وارد صفحه ای میشید که دکمه آپلود فایل موجود هست و این رو انتخاب میکنید

فایل مورد نظرتون رو انتخاب میکنید که اکثرا CSV استفاده میکنم


بعد از این مرحله وارد قسمتی میشید که باید ستون های داده ای خودتون رو به هر فیلد اون مدل داده ای ارتباط بدین مثلا نام که در داده ها هست رو به عنوان فیلد نام معرفی کنید و آیدی خارجی هم اون ستون از داده ها که به  عنوان آیدی خارجی در نظر گرفتین ، بعد داده رو وارد میکنید ، مراحل رو یکی یکی براتون عکسشو میزارم :

میبینید که آیدی فایل رو به عنوان آیدی خارجی دادم و نام رو به عنوان نام و اول تست رو میزنیم که خطایی برای ورود رکوردها نداشته باشیم و بعدش اون رو وارد میکنیم(گزینه ی ورود رو میزنیم).

بعد از این کارها وارد تگ محصولات میشید یا همان برچسب محصولات و از این قسمت یکی از رکوردهایی که وارد شده رو میبینید و در این قسمت برای اینکه بخواین آیدی خارجی رو ببینید باید مد دیباگ رو فعال کرده باشین و بعد گزینه ای که در عکس آمده رو انتخاب کنید و بعد از منوی باز شده گزینه نمایش متا دیتا رو انتخاب کنید:

 

بعد از اینکار وارد صفحه ی زیر میشوید و میتونید آیدی خارجی رکورد رو ببینید:


میبینید که یک آیدی به این رکورد داده شده که چون از ورودی بوده خود سیستم چیزهایی رو بهش اضافه کرده ولی آیدی که ما بهش دادیم رو داره و این برای همه رکوردها به همین طریق ولی آیدی متفاوت وارد شده و شما میتونید برای بازیابی اون به شیوه زیر عمل کنید.

برای بازیابی یک رکورد با شناسه خارجی آن در کد، میتوانید از متد env.ref استفاده کنید. این متد یک شناسه خارجی را به عنوان ورودی میگیرد و یک رکورد را به عنوان خروجی برمیگرداند. مثال زیر نشان میدهد که چگونه میتوانید یک رکورد از مدل product.tag را با شناسه خارجی product.import_.791_  بازیابی کنید:

self.env.ref('product.import_.791_') 

توضیح آیدی ای که وارد میکنید به این صورت هست که product نام مدل داده ای هست که شما در آن رکورد وارد کرده این و مابقی اون اسم هم میشه همون آیدی خارجی.

آواتار
انصراف