Skip to Content

راهنمای کامل Regular Models در Odoo 19

همه چیز درباره ستون فقرات ماژول های اودو، خیلی راحت و قابل فهم

اگه با Odoo​ کار کرده باشی، میدونی که این سیستم مثل یه جعبه ابزار همه کاره برای کسب و کارهاست. هر چیزی که توی اودو ذخیره میشه، از مشتری و محصول گرفته تا فاکتور و کارمند، پشتش یه مدل داده خوابیده. بین همه مدل ها (regular، transient، abstract)، مدل های regular​ یا همون Regular Models​ نقش ستون فقرات رو دارن. بدون اون ها هیچ ماژولی درست کار نمیکنه.

تو این مقاله میخوایم خیلی راحت و بی تکلف توضیح بدیم Regular Models​ دقیقا چی هستن، چطور کار میکنن، چرا مهمن و چطور میشه ازشون توی Odoo 19​ بهترین استفاده رو کرد.

Regular Models​ دقیقا چی هستن؟

مدل های regular​ همون مدل های استانداردی هستن که داده های پایدار رو توی دیتابیس ذخیره میکنن. یعنی هر چیزی که باید برای همیشه بمونه، مثل مشتری (Customer​)، فروشنده (Vendor​)، محصول (Product​)، فاکتور (Invoice​) یا کارمند (Employee​)، توی یه Regular Model​ نگهداری میشه.

تعریفش هم خیلی ساده ست:

class MyModel(models.Model):
    _name = "my.model"

به محض اینکه این کلاس ساخته بشه، اودو یه جدول دیتابیس با همین اسم درست میکنه و هر فیلدی که توی مدل تعریف کرده باشی، میشه ستون اون جدول.

ویژگی های مهم Regular Models

۱. ذخیره سازی دائمی

هر داده ای که توی Regular Model​ ساخته بشه، برای همیشه توی دیتابیس PostgreSQL​ میمونه. برای همین برای رکوردهای اصلی مثل سفارش فروش (Sales Order​)، سفارش خرید (Purchase Order​) یا حرکت های انبار (Stock Move​) استفاده میشن.

۲. یکپارچگی با Odoo ORM

Odoo ORM​ یه لایه خیلی قدرتمنده که کار با دیتابیس رو آسون میکنه. امکاناتش شامل:

  • عملیات CRUD​ (ساخت، خوندن، ویرایش، حذف)
  • قوانین دسترسی (Record Rules​)
  • منطق تجاری با متدهای Python
  • فیلدهای رابطه ای برای اتصال مدل ها
  • منطق onchange​ و compute

به لطف ORM​، خیلی کم پیش میاد که لازم باشه مستقیم SQL بنویسی.

۳. پشتیبانی از منطق تجاری

با Regular Models​ میتونی قوانین کسب و کار رو خیلی راحت با متدهای Python​ اضافه کنی. مثلا:

  • create()​ برای ساخت رکورد
  • write()​ برای ویرایش رکورد
  • unlink()​ برای حذف رکورد
  • متدهای compute​ برای محاسبات
  • متدهای onchange​ برای واکنش به تغییرات

این باعث میشه کدت تمیز و قابل نگهداری بمونه.

۴. اتصال به رابط کاربری

هر Regular Model​ به صورت خودکار به ویوهای مختلف اودو وصل میشه:

  • Form View
  • Tree View
  • Kanban View
  • Search View
  • Calendar ، Gantt ، Pivot

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

یه مثال ساده از Regular Model​ در Odoo 19

from odoo import models, fields

class Student(models.Model):
    _name = "school.student"
    _description = "Student Information"

    name = fields.Char("Student Name", required=True)
    age = fields.Integer("Age")
    grade = fields.Selection([
        ('a', 'Grade A'),
        ('b', 'Grade B'),
        ('c', 'Grade C')
    ], "Grade")

اینجا:

  • یه جدول دیتابیس به اسم school_student​ ساخته میشه.
  • فیلدها میشن ستون های جدول.
  • رابط کاربری اودو خودش فرم و لیست برای این مدل درست میکنه.

چرا Regular Models​ اینقدر مهمن؟

۱. پایه همه داده های کسب و کار

هر اپلیکیشن توی اودو، از فروش و CRM​ گرفته تا انبار و منابع انسانی، روی Regular Models​ بنا شده.

۲. سفارشی سازی راحت

میتونی مدل های موجود رو خیلی راحت ارث بری (inherit​) کنی و ویژگی های جدید اضافه کنی بدون اینکه کد اصلی رو دست بزنی:

class InheritPartner(models.Model):
    _inherit = "res.partner"
    customer_code = fields.Char("Customer Code")

این یعنی توسعه سریع و بی دردسر.

۳. روابط داده ای بهتر

با فیلدهای رابطه ای مثل Many2one، One2many و Many2many​ میشه ساختارهای پیچیده کسب و کار رو خیلی راحت مدل کرد.

۴. امنیت و کنترل دسترسی

اودو کنترل دقیق امنیتی میده:

  • دسترسی ها (Access Rights​)
  • قوانین رکورد (Record Rules​)
  • ACL​ ها در سطح مدل
برای توضیح کامل و مرحله به مرحله درباره امنیت و کنترل دسترسی در اودو، میتونی مقاله صفر تا صد مدیریت دسترسی ها در Odoo رو بخونی.


خلاصه، Regular Models​ توی Odoo 19 دقیقا همون چیزی هستن که داده های پایدار کسب و کار رو ذخیره میکنن، منطق تجاری رو پشتیبانی میکنن، با رابط کاربری یکپارچه ان و امنیت رو تضمین میکنن. اگه قصد داری ماژول سفارشی بسازی، قابلیت های موجود رو توسعه بدی یا یه سیستم کامل طراحی کنی، باید Regular Models​ رو مثل کف دستت بلد باشی.

با یاد گرفتن Regular Models​ میتونی اپلیکیشن هایی بسازی که هم مقیاس پذیر باشن، هم کاربر پسند، و هم دقیقا مطابق با workflow​ واقعی کسب و کار.


راهنمای کامل افزونه های ضروری Odoo در VSCode
بهترین افزونه های معتبر برای توسعه سریع و کدنویسی راحت و حرفه ای Odoo