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

دليل شامل لحقل Integer في Odoo

الدليل الشامل لحقل "عدد صحيح" في نموذج بيانات Odoo — من كيف يستخدمه العمل اليومي إلى أين تلمسه عند التخصيصات التقنية
6 مارس 2026 بواسطة
دليل شامل لحقل Integer في Odoo
Dasolo
لا توجد تعليقات بعد

مقدمة


كلما أدخلت كمية على طلب بيع، أو عدَّدت أيام استمرارية مهمة، أو ضبطت أولوية لفرصة مبيعات، فإنك على الأرجح استخدمت حقلًا من نوع Integer في أودو. هذا النوع منتشر في شجرة البيانات ويُستخدم لتمثيل القيم التي تُحتسب بوحدات كاملة فقط.


فهم سلوك هذا الحقل مهم لكل من مُكوّني النماذج من المستخدمين غير التقنيين، والمطوّرين الذين يكتبون وحدات مخصصة، والمستشارين الذين يصممون نموذج بيانات متماسك للعملاء.


هنا دليل عملي يشرح ما يخزنه الحقل، كيف يتصرف ضمن إطار عمل أودو وواجهاته، وكيف تضيفه أو تعدله عبر Odoo Studio أو بالكود، مع أمثلة وملاحظات للتطبيق الفعّال.

ما هو حقل Integer في أودو


على مستوى قاعدة البيانات، حقل Integer مخصَّص للأعداد الصحيحة فقط—لا كسور ولا منازل عشرية. في PostgreSQL يُترجم إلى عمود من نوع INTEGER بطول 4 بايت، يدعم نطاقًا كبيرًا من القيم السالبة والموجبة.


من زاوية المستخدم يظهر الحقل كمربع إدخال رقمي بسيط في النماذج وعمود أرقام في القوائم. اختَر Integer عندما تكون الوحدة الكاملة هي المعنى الصحيح: كميات أصناف، نقاط تقييم، أيام، أو أرقام تسلسلية حيث لا معنى لنصف وحدة.


مثال على تعريف الحقل في كود بايثون يوضح الفكرة التقنية.

في كود بايثون تُعرّف الحقول داخل فئة النموذج، مع خصائص مثل اسم العرض والقيمة الافتراضية لتسهيل إنشاء السجلات الجديدة.

خيار string يحدد التسمية الظاهرة في الواجهة، أما default فيحدّد القيمة التي يأخذها الحقل عند إنشاء سجل جديد.


في Odoo Studio يظهر النوع باسم Integer وتتم إضافة بادئة مثل x_studio_ تلقائيًا للحقل المضاف عبر الواجهة، بينما في الكود تختار الاسم التقني بنفسك.

كيف يعمل الحقل


عند تعريف الحقل، مسؤولية إنشاء العمود في قاعدة البيانات تقع على إطار عمل أودو أثناء تثبيت أو تحديث الوحدة؛ لست بحاجة لكتابة أوامر SQL يدوية.


ORM يتعامل مع تحويل الأنواع: الحقول الفارغة من نوع Integer تعود بقيمة 0 بدلًا من None أو False. هذه الخاصية تختلف عن أنواع أخرى ويجب أخذها بالاعتبار عند فحص عدم وجود قيمة.


السمات الأساسية للحقل

فيما يلي أهم الخصائص التي يمكنك ضبطها لحقل Integer:

  • string: تسمية الحقل التي يراها المستخدمون.
  • default: القيمة الافتراضية للسجل الجديد، وإذا لم تحدد فالأودو يضع 0 تلقائيًا.
  • required: يجعل الحقل إجباريًا. بما أن الافتراضي هو 0، فستحتاج إلى منطق إضافي إذا أردت منع حفظ القيمة عندما تكون صفرًا.
  • readonly: يمنع تعديل الحقل من واجهات المستخدم.
  • index: ينشئ فهرسًا في PostgreSQL لتسريع عمليات البحث والتصفية على هذا الحقل.
  • compute: يربط الحقل بدالة بايثون تحسب قيمته ديناميكيًا اعتمادًا على حقول أخرى.
  • store: مع compute يتحكم فيما إذا كانت القيمة المحسوبة تُخزّن في قاعدة البيانات أم تُحسب عند الطلب.
  • copy: يحدد ما إذا كانت القيمة تُنسخ عند تكرار السجل.
  • groups: يقصر رؤية الحقل على مجموعات مستخدمين محددة.

كيف يظهر الحقل في الواجهات

في نماذج الإدخال يظهر الحقل كمربع رقمي، والأودو يضيف فواصل الآلاف تلقائيًا لقراءة الأرقام الكبيرة بسهولة.


في قوائم السجلات يظهر كأرقام محاذية لليمين، وفي واجهات البحث يدعم عوامل مقارنة مثل يساوي وأكبر من وأصغر من.


يمكن تغيير المظهر باستخدام ويدجتات؛ مثلاً ويدجت الأولويات يحوّل الأرقام إلى نجوم قابلة للنقر، وprogressbar يعرض القيمة كشريط تقدم عند تزويده بحد أقصى.


التفاعل مع ORM الخاص بأودو

من منظور المطوِّر، قراءة وكتابة حقول Integer بسيطة: القيم تتعامل كـ int في بايثون. لاحظ أن الحقل الفارغ يساوي 0، لذا يجب الحذر عند فحص عدم وجود قيمة لأن الصفر قد يعني فراغًا أو قيمة مقصودة.


تعمل حقول Integer بسلاسة داخل الحقول المحسوبة والقيود (domains) المستخدمة في العروض، والإجراءات الخادمة، والعمليات الآلية داخل النظام.

حالات استخدام عملية


حقل Integer يظهر في معظم تطبيقات أودو، وفيما يلي خمسة أمثلة عملية توضح دوره المحوري.


1. إدارة العملاء: تقييم الفرص

فرق المبيعات تحتاج في الغالب لتصنيف الفرص بحسب درجة الاهتمام. يمكن إضافة حقل Integer مخصص لتسجيل نقاط الفرصة؛ إما يدويًا أو عبر قواعد أوتوماتيكية تحسب النقاط اعتمادًا على معايير مثل حجم الشركة أو مستوى التفاعل.

بذلك يصبح من السهل فلترة وترتيب قمع المبيعات بحسب أولوية الفرص والتركيز على الأهم.


2. المبيعات: الحد الأدنى للطلب

في موديلات المبيعات والمخزون تُستخدم حقول Integer لتحديد الحد الأدنى للكمية في المنتج أو قواعد السعر. ضبط حد أدنى مثل 10 وحدات يمنع إنشاء طلبات أقل من هذا المعدل ويوفر تواصلًا أقل مع العملاء.


3. المخزون: قواعد إعادة الطلب

قواعد إعادة الطلب تعتمد على حقول Integer لتحديد الحد الأدنى والحد الأقصى للمخزون. عندما ينخفض المخزون تحت الحد الأدنى يقوم النظام بإنشاء طلب توريد تلقائيًا حتى الحد الأعلى المحدد—القيم الصحيحة هنا تمنع نفاد المخزون أو تراكمه.


4. إدارة المشاريع: نقاط القصص وتقديرات الجهد

فرق العمل التي تتبع منهجيات رشيقة تضيف حقول Integer لتسجيل نقاط القصص أو ساعات تقديرية. يظهر الحقل في لوحات كانبان والقوائم لمساعدة الفريق على متابعة السعة والسرعة خلال الفترات الزمنية.


5. المحاسبة: أيام شروط الدفع

شروط الدفع في المحاسبة تُحدد بعدد أيام محفوظ في حقل Integer. سواء كانت Net 30 أو Net 60، تُستخدم هذه القيم لحساب مواعيد استحقاق الفواتير بدقة، مما يؤثر مباشرة على إدارة التدفقات النقدية.

إنشاء أو تخصيص حقل Integer


طريقتان رئيسيتان لإضافة حقل Integer إلى نموذج أودو: عبر Odoo Studio بدون كود، أو بالكود داخل بايثون للتحكم التام.


باستخدام Odoo Studio

Odoo Studio أداة بدون كود مدمجة لتخصيص الحقول والعروض. خطوات إضافة حقل Integer عبر الواجهة:

  1. افتح النموذج الذي تريد إضافة الحقل إليه.
  2. فعل Studio من القائمة العلوية.
  3. اسحب نوع الحقل Integer من قائمة الحقول إلى النموذج.
  4. حدد تسمية الحقل، وقرّر إن كان إجباريًا، واضبط القيمة الافتراضية.
  5. احفظ واخرج من Studio.

سيُنشأ الحقل مع بادئة x_studio_ ويُحفظ تعريفه في ir.model.fields، ويصبح متاحًا مباشرة في النماذج والقوائم.


باستخدام بايثون (تخصيص تقني)

للمطورين الذين يبنون وحدات مخصصة، يتم تعريف الحقل داخل فئة النموذج في بايثون:


في الكود تعرّف الحقل مع الخصائص المطلوبة مثل index أو help لتوجيه الاستخدام ورفع الأداء عند الحاجة.

بعد تعديل الكود عليك تحديث الوحدة (مثلاً عبر odoo-bin -u) ليطبق أودو التغييرات وينشئ العمود في قاعدة البيانات تلقائيًا.


باستخدام واجهة XML-RPC

يمكن أيضًا إنشاء الحقل عن بُعد عبر API مثل XML-RPC، وهو مفيد للنشر الآلي أو عندما لا يتوفر وصول مباشر إلى الخادم.


عند الإنشاء عبر API تحدد اسم الحقل، الوصف، النموذج المُرتبط، ونوع الحقل كـ 'integer'، مع وضع الحالة manual للحقول المخصصة.

ttype للحقل هو 'integer'، وstate='manual' يميّز الحقول التي أضافها المستخدم عن تلك المعرفة في الوحدة.


إضافة حقل Integer محسوب

الحقول المحسوبة مفيدة لاستخراج قيم تلقائيًا، مثل عدّ المهام المفتوحة المرتبطة بمشروع.


في دالة الحِساب تحسب عدد السجلات المرتبطة وتعيّن القيمة لكل عنصر؛ وتُستخدم search_count للحصول على عدد العناصر المطابقة لشروط معينة.

عند ضبط store=True تُخزن النتيجة في قاعدة البيانات، ما يسمح بفلترة وفرز الحقول دون إعادة حساب كل مرة.

ممارسات موصى بها


نصائح عملية للاستفادة القصوى من حقول Integer


استخدم Integer للعدّ والقيم التي لا تقبل كسور

اختر Integer عندما تكون القيمة دائمًا عددًا صحيحًا. إذا كان القياس أو المال قد يحتاجان إلى أرقام عشرية فالأفضل استخدام Float أو Monetary.


ضع قيمة افتراضية منطقية

بما أن الافتراضي في أودو هو 0، فكر فيما إذا كان الصفر ذو معنى. إن كان الصفر يُفهم كقيمة فعلية أو عدم تعيين، قد تحتاج لحقل منطقي إضافي أو منطق مخصص لتمييز الحالة.


أضف فهرسًا إذا كنت ستفحص الحقل كثيرًا

إذا كنت ستفلتر أو تفرز أو تجمع حسب الحقل بكثرة فحدِّد index=True لتسريع الاستعلامات على قواعد بيانات كبيرة؛ التكلفة التخزينية وزمن الكتابة عادة ضئيلة مقارنة بالفائدة.


استخدم store=True للحقول المحسوبة التي تُستخدم في الفلترة

إذا كنت ستفلتر أو تجمع أو تستخدم الحقل في عروض القوائم فاجعل computed field مخزنًا حتى يمكن استخدامه داخل domains وعمليات التجميع.


وثّق النطاقات والقيم المتوقعة

إذا كان للحقل نطاق قيم ذي معنى—مثل 0 إلى 100—أضف نص توضيحي في help ليظهر كـ tooltip للمستخدمين ويمنع التخمين الخاطئ.


لا تستخدم Integer كبديل للروابط إلى سجلات

عند الحاجة للإشارة إلى سجل آخر استخدم Many2one بدل تخزين رقم المعرف في Integer. Many2one يمنحك توافقية ORM وروابط قابلة للنقر وقواعد حذف/تحديث مناسبة. تخزين ID خام في Integer هش ويخرق بنية أودو.

أخطاء شائعة


الأخطاء الأكثر شيوعًا عند استخدام Integer في أودو


خلط Integer مع Float

خطأ متكرر هو اختيار Integer حيث يحتاج المستخدمون لكسور. أودو قد يقصّ الأجزاء العشرية بصمت، مما يسبب فقدان بيانات وارتباك. للاستخدامات التي تتطلب دقة عشرية استخدم Float أو Monetary.


الافتراض أن الصفر يعني فراغًا

لأن الحقل الفارغ يعيد 0 فلا يمكن التمييز بين حالتي "لم يُملأ الحقل" و"تم إدخال صفر". إن كان هذا الفرق مهمًا أضف حقل Boolean للمَلاحظة أو استخدم Float مع قيمة افتراضية False.


نسيان إضافة فهرس للحقل المستخدم في التصفية

ترك الحقل بدون index ثم استخدامه كثيرًا في الفلاتر يؤدي إلى تباطؤ الواجهات على قواعد بيانات كبيرة. من الأسهل إضافة الفهرس من البداية.


استخدام Integer لتخزين نسب عشرية

تخزين النسب كنسبة كاملة (مثلاً 75 بدل 75%) يصمد حتى يتطلب الأمر دقة عشرية مثل 72.5%. إذا كان هناك احتمال للحاجة إلى كسور فابدأ بـ Float.


نسيان store=True على الحقول المحسوبة المستخدمة في الفلترة

حقل محسوب غير مخزن لا يصلح للفلترة أو التجميع. هذا خطأ شائع؛ فكّر مسبقًا في كيفية استخدام الحقل قبل اتخاذ قرار التخزين.

الخلاصة


حقل Integer عنصر أساسي وبسيط في نموذج بيانات أودو، لكن خصائصه الصغيرة—مثل إعادة 0 للحقل الفارغ والحاجة إلى store=True للحوسبة القابلة للفلترة—تجعل التصميم الدقيق مهماً لتجنب أخطاء يصعب تصحيحها لاحقًا.


سواء كنت تعدّل أودو لفريق مبيعات، تبني وحدة مخصصة، أو تصمم قواعد إعادة طلب لمستودع، ستلتقي بحقول Integer مرارًا. فهم متى تُستخدم مقابل Float أو Monetary وكيف تُنشأ ويُخزن القيم يجعل التنفيذ أكثر ثباتًا وقابلية للصيانة.


لو كنت تعمل على تخصيص وأردت ضمان بنية بيانات صحيحة من البداية، فإن هذا الفهم الأساسي يوفّر عليك وقتًا وجهدًا طوال عمر المشروع.

العمل مع خبير أودو


في Dasolo نقدم خدمات تنفيذ وتخصيص وتحسين أودو عبر مختلف الوحدات والصناعات. سواء احتجت لتصميم نموذج بيانات نظيف، بناء حقول وسير عمل مخصص، أو ربط أودو بأنظمة خارجية عبر API، لدينا الخبرة لتنفيذ ذلك بشكل صحيح.


إذا كانت لديك أسئلة حول إعداد أودو لديك أو رغبت في مناقشة مشروع ما، تواصل مع فريقنا. يسعدنا مساعدتك.

دليل شامل لحقل Integer في Odoo
Dasolo 6 مارس 2026
شارك هذا المنشور
تسجيل الدخول حتى تترك تعليقاً