راهنمای Odoo

به تالار گفتگوی ویراوب خوش آمدید!

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

11

میخواستم راجع به رکوردهای چند به یک و یک به چند در اودوو ۱۶ نسخه ویراوب ۱۲۳ یک سری اطلاعات بهم بدین؟

آواتار
فردین مردانی

میخواستم بدونم که این رکوردها چی هستن و اینکه چطوری میتونیم با کد این مقادیر این فیلدها رو تغییر و ایجاد و یا حذف کنیم

آواتار
رها کردن
1 پاسخ
5
آواتار
فردین مردانی
بهترین پاسخ

اودوو ۱۶ نسخه ویراوب ۱۲۳ یک نرم افزار مدیریت منابع سازمانی است که شامل ماژولهای مختلفی برای مدیریت و بهبود فرآیندهای کسب وکار است. این نرم افزار از زبان برنامه نویسی پایتون (Python) و پایگاه داده پست گرس (PostgreSQL) استفاده میکند. برای کار با داده ها در اودوو ۱۶ نسخه ویراوب ۱۲۳، لازم است با مفهوم مدل (Model) آشنا باشید. مدل در اودوو ۱۶ به یک جدول در پایگاه داده متناظر است که شامل فیلدها (Fields) و روابط (Relations) با سایر مدلها است. هر مدل یک نام منحصر به فرد دارد که با حرف کوچک شروع شده و نقطه ها را به عنوان جداکننده استفاده میکند. برای مثال، مدل sale.order به جدول سفارشات فروش در پایگاه داده اشاره دارد.

برای بروز رسانی و ویرایش و ایجاد و حذف رکوردهای یک به چند و چند به یک در اودوو ۱۶ نسخه ویراوب ۱۲۳، لازم است با نحوه تعریف و استفاده از روابط بین مدلها آشنا باشید. رابطه یک به چند (One2many) به این معناست که هر رکورد از مدل منبع (Source Model) میتواند به چندین رکورد از مدل هدف (Target Model) اشاره داشته باشد، اما هر رکورد از مدل هدف فقط به یک رکورد از مدل منبع اشاره دارد. برای تعریف یک رابطه یک به چند، لازم است در مدل منبع، یک فیلد با نوع One2many تعریف کنید و آن را به نام مدل هدف و نام فیلد Many2one در آن مدل پیوند دهید. برای مثال، در مثال زیر، در مدل sale.order، یک فیلد با نام order_line تعریف شده است که نشان دهنده رابطه یک به چند با مدل sale.order.line است. در این رابطه، هر سفارش فروش (sale.order) شامل چندین خط سفارش (sale.order.line) است.
برای بروز رسانی و ویرایش و ایجاد و حذف رکوردهای یک به چند، میتوان از مقادیر خاصی برای فیلد One2many استفاده کرد. این مقادیر به صورت یک لیست از لیستها هستند که هر لیست شامل سه عنصر است. عنصر اول نشان دهنده عملیات مورد نظر است که میتواند یکی از مقادیر زیر باشد:

• (0, 0, { values }) : این عملیات یک رکورد جدید با مقادیر داده شده در مدل هدف ایجاد میکند و آن را به مدل منبع پیوند میدهد.

• (1, ID, { values }) : این عملیات رکورد با شناسه داده شده در مدل هدف را با مقادیر داده شده به روز رسانی میکند.

• (2, ID, 0) : این عملیات رکورد با شناسه داده شده در مدل هدف را حذف میکند و پیوند آن را با مدل منبع قطع میکند.

• (3, ID, 0) : این عملیات فقط پیوند رکورد با شناسه داده شده در مدل هدف را با مدل منبع قطع میکند، اما رکورد را حذف نمیکند.

• (4, ID, 0) : این عملیات فقط پیوند رکورد با شناسه داده شده در مدل هدف را با مدل منبع برقرار میکند، اما رکورد را تغییر نمیدهد

• (5, 0, 0) : این عملیات تمام پیوندهای موجود بین مدل منبع و مدل هدف را قطع میکند، اما رکوردها را حذف نمیکند.

• (6, 0, { values }) : این عملیات یک رکورد جدید با مقادیر داده شده در مدل هدف ایجاد میکند و آن را به مدل منبع پیوند میدهد، اما فقط در صورتی که هیچ رکورد دیگری با همان مقادیر وجود نداشته باشد.

برای نمونه، در کد زیر، یک رکورد جدید در مدل sale.order با شناسه 1 ایجاد شده است. در این رکورد، فیلد order_line با استفاده از عملیات های گفته شده به روز رسانی شده است. در این فیلد، چهار خط سفارش جدید اضافه شده اند، دو خط سفارش قبلی ویرایش شده اند و دو خط سفارش دیگر حذف شده اند.


رابطه چند به یک (Many2one) به این معناست که هر رکورد از مدل منبع میتواند به یک رکورد از مدل هدف اشاره داشته باشد، اما هر رکورد از مدل هدف میتواند به چندین رکورد از مدل منبع اشاره داشته باشد. برای تعریف یک رابطه چند به یک، لازم است در مدل منبع، یک فیلد با نوع Many2one تعریف کنید و آن را به نام مدل هدف پیوند دهید. برای مثال، در کلاس SaleOrderLine، یک فیلد با نام order_id تعریف شده است که نشان دهنده رابطه چند به یک با مدل sale.order است. در این رابطه، هر خط سفارش (sale.order.line) به یک سفارش فروش (sale.order) اشاره دارد.

برای بروز رسانی و ویرایش و ایجاد و حذف رکوردهای چند به یک، کافی است مقادیر فیلدهای Many2one را تغییر دهید. برای مثال، در کد زیر، خط سفارش با شناسه 9 را به سفارش فروش با شناسه 2 پیوند داده ایم.



این عکس رو هم دلم میخواست به عنوان یک مرجع سریع برای خواندن این موضوع بزارم البته درسته که انگلیسی هست ولی خوب هست :






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