تخطي للذهاب إلى المحتوى

دليل ORM في Odoo: الربط الكائني العلائقي

Table of contents

No titles in the blog post

الـ ORM في Odoo (الربط الكائني العلائقي) هو طريقة التعامل مع قاعدة البيانات وتنفيذ عملياتها في منصة Odoo. يطبّق الـ ORM مبادئ البرمجة كائنية التوجه (OOP) على عمليات قاعدة البيانات، فيمثّل الجداول ككائنات Python، مما يجعل العمليات برمجية أكثر وأسهل قراءة، ويمنح المطوّرين طريقة أبسط لإدارتها.

فيما يلي المفاهيم الأساسية للـ ORM في Odoo وطريقة عمله:

  1. النموذج (Model)
    النموذج صنف (class) في Python يمثّل جدولاً في قاعدة البيانات. وتحتوي كل وحدة في Odoo على نموذج أو أكثر، وهذه النماذج تنشئ الجداول في قاعدة البيانات وتديرها. إليك مثالاً بسيطاً على نموذج:
    from odoo import models, fields

    class Customer(models.Model):
    _name = 'res.partner'
    _inherit = 'res.partner'

    # Custom fields
    is_company = fields.Boolean(string='Is a Company', default=False)
    customer_code = fields.Char(string='Customer Code')
  2. الحقل (Field)
    تحدد الحقول أنواع البيانات وسلوكها في النموذج، وتمثّل أعمدة جدول قاعدة البيانات. فمثلاً، في نموذج العملاء يمكن تعريف حقول مثل "name" و"email" و"phone":
  3. السجل (Record)
    يمثّل السجل إدخالاً محدداً لنموذج في قاعدة البيانات، ويحتوي على قيم الحقول التي يعرّفها النموذج. فمثلاً، يمكن إنشاء سجل عميل كما يلي:
    new_customer = self.env['res.partner'].create({
    'name': 'John Doe',
    'email': '[email protected]',
    'phone': '123456789'
    })
  4. النطاق (Domain) والسياق (Context)
    • النطاق (Domain): يُستخدم لتصفية السجلات وفق شروط معينة، مثل التصفية حسب قيمة حقل:
      domain = [('is_company', '=', True)]
      companies =
      self.env['res.partner'].search(domain)
    • السياق (Context): يُستخدم لتحديد سلوك العمليات، مثل ضبط لغة المستخدم أو إعدادات أخرى عبر السياق:
      context = {'lang': 'en_US'}
      products =
      self.env['product.product'].with_context(context).search([])
  5. عمليات CRUD (الإنشاء والقراءة والتحديث والحذف)
    • الإنشاء (Create): إنشاء سجل جديد:
      new_customer = self.env['res.partner'].create({
      'name': 'Jane Doe',
      'email': '[email protected]' })
    • القراءة (Read): قراءة السجلات:
      customer = self.env['res.partner'].browse(1)
      print(customer.name)
    • التحديث (Update): تحديث السجلات:
      customer.write({'email': '[email protected]'})                      
    • الحذف (Delete): حذف السجلات:
      customer.unlink()                              


الخلاصة

يمنح الـ ORM في Odoo المطوّرين مرونة وسهولة في إدارة عمليات قاعدة البيانات، مما يسرّع تطوير التطبيقات وتخصيصها. وباستخدامه تُدار عمليات قاعدة البيانات بشيفرة Python بطريقة أوضح وأكثر استدامة.

التعليقات

تسجيل الدخول حتى تترك تعليقاً