توسعه 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.

5

read_group() چطور کار می‌کند و برای چه منظوری از آن استفاده می کنیم؟

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

من الان از odoo15 استفاده میکنم. یکی از مهم‌ترین تابع‌هایی که در لایه داده وجود دارد این تابع است. من اساس read_group() را می‌دانم که سه آرگومان مورد نیاز دامنه، فیلدها و گروه بندی  و برخی آرگومان‌های اختیاری دیگر مانند limit، lazy، offset و غیره را می‌پذیرد، اما نمی‌توانم بفهمم چرا از آن استفاده می‌کنیم و نتیجه آن را کجا بررسی کنیم.

لطفا در مورد کاربر این متد توضیح دهید.

آواتار
انصراف
1 پاسخ
3
آواتار
مصطفی برمشوری
بهترین پاسخ

مهم ترین کاربرد این متد گرفتن یک لیست از داده‌ها به صورت یک جدول است که در آن تمام نتایج بر اساس فیلد گروه بندی، دسته بندی و مرتب شده است. 

مهم‌ترین پارامتری که در این متد استفاده می‌شود group by است که تعیین می‌کند چه فیلد یا فیلدهایی باید در دسته بندی استفاده شوند. مقادیری که برای این فیلد تعیین می‌شوند یا یک فیلد هستند یا یک رشته توصیفی. زمانی که شما اسم یک فیلد را تعیین می‌کنید به صورت خودکار دسته بندی بر اساس آن انجام خواهد شد. اما این کار را می‌توانید به صورت توصیفی انجام داد. در حالت توصیفی شما از ساختار field:groupby_function استفاده می‌کنید. در این حالت نه تنها فیلد گروه بندی را تعیین کردید بلکه روش گروه بندی را نیز مشخص می‌کنید. در حال حاضر این روش برای فیلدهای زمان استفاده می‌شود و تابع گروه بندی به صورت روز، هفته، ماه، فصل و سال می‌تواند تعیین شود.

فیلد مهم بعد فهرست پارامترهایی است که به آنها نیاز داریم. بر خلاف روش‌های جستجوی ساده اینجا باید روش تجمیع فیلدها را نیز تعیین کنید. برای نمونه اگر در یک گروه سه نمونه قرار بگیرد که در آن فیلد عددی وجود دارد باید تعیین کرد که از این سه عدد چه چیزی باید در خروجی استفاده شود. بر این کار از یک رشته توصیفی استفاده می‌شود به صورت name:agg که در آن name همان نام فیلد مورد نظر و agg تابع تجمیع سازی است. برای نمونه age:min تعیین می‌کند که حداقل سن در گروه بندی استفاده شود. در حال حاضر تمام توابع تجمیع سازی پستگرس مثل sum و avg قابل استفاده هستند.


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