ORM مخفف چیست ؟ و ORM در اودوو چیست و چه کارکردی دارد ؟
2 پاسخ ها
ORM ادوو مخفف Object-Relational Mapping ادوو است که یک ابزار است که برای تبدیل داده های شی گرا به داده های رابطه ای استفاده می شود. این ابزار به توسعه دهندگان ادوو اجازه می دهد تا با استفاده از زبان پایتون، با پایگاه داده های مختلف مانند PostgreSQL، MySQL، Oracle و غیره تعامل داشته باشند. ORM ادوو مزایایی مانند سادگی، سرعت، انعطاف پذیری و قابلیت انتقال دارد.
ORM ادوو از مفاهیمی مانند مدل، فیلد، رکورد، مجموعه ها، مراجع، ارث بری، گسترش، محدودیت ها، اعتبارسنجی، محاسبات، رویدادها، تراکنش ها و پرس و جوها پشتیبانی می کند . با استفاده از ORM ادوو، می توان عملیات های CRUD (ایجاد، خواندن، به روز رسانی و حذف) را بر روی داده ها انجام داد، روابط بین مدل ها را تعریف کرد، کوئری های پیچیده را با استفاده از API پایتون نوشت و از مکانیزم های بهینه سازی مانند کش ، پیش بارگیری و تنبیه استفاده کرد.
ORM در odoo مخفف Object-Relational Mapping است و یک لایه انتزاعی بین کد پایتون و دیتابیس است. با استفاده از ORM، میتوانید با دادههای دیتابیس به شکل شیءگرا کار کنید و نیازی به نوشتن کوئریهای SQL نداشته باشید. ORM به شما کمک میکند که مدلهای داده را مدیریت کنید و آنها را به جداول دیتابیس نگاشت کنید. همچنین ORM شامل مجموعهای از متدها است که امکان انجام عملیاتهای CRUD (Create, Read, Update, Delete) را بر روی رکوردهای دیتابیس فراهم میکند.
برای استفاده از ORM در odoo، باید یک کلاس پایتون را از یکی از کلاسهای زیر ارث بری کنید:
- Model: برای مدلهای معمولی که در دیتابیس ذخیره میشوند
- TransientModel: برای دادههای موقتی که در دیتابیس ذخیره میشوند اما به صورت خودکار پاک میشوند
- AbstractModel: برای کلاسهای انتزاعی که به عنوان سوپر کلاس برای چندین کلاس فرزند استفاده میشوند
برای تعریف یک مدل در odoo، باید یک نام برای آن انتخاب کنید که با کاراکتر _name مشخص میشود. همچنین باید فیلدهای مدل را به عنوان ویژگیهای کلاس تعریف کنید. برای مشخص کردن نوع و خصوصیات فیلدها، باید از کلاس fields استفاده کنید. مثال زیر یک مدل ساده را نشان میدهد:
from odoo import models, fields
class Book(models.Model):
_name = 'library.book'
name = fields.Char(string='Title', required=True)
author = fields.Char(string='Author')
pages = fields.Integer(string='Number of Pages')
price = fields.Float(string='Price')
state = fields.Selection([
('available', 'Available'),
('borrowed', 'Borrowed'),
('lost', 'Lost'),
], string='State', default='available')
خیلی سوال کوتاه هست؟! عنوان سوال رو بیشتر باید بزارید.