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

دليل شامل لحقل الصور في Odoo: كل ما تحتاج معرفته

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

مقدمة


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


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


سأشرح هنا ماذا يخزن الحقل، كيف يتصرف داخل بنية أودو، كيف تضيفه بسهولة عبر استوديو أودو أو بكود بايثون، مع أمثلة عملية من حالات عمل حقيقية.

ما هو حقل الصورة في أودو


في إصدارات أودو الحديثة يوجد نوع حقل مخصص للصورة مُعرف كـ fields.Image. قبل إدخاله كان المطورون يستخدمون حقلاً ثنائيًا (Binary) مع ويدجت الصورة. الآن النوع المخصص يتولى معالجة دورة حياة الصورة بالكامل، من التحقق إلى تغيير الحجم وتخزينها.


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


كيف تظهر في الواجهة

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


في قوائم العرض النمطية نادرًا ما تُظهر الصور لأن تحميل معاينات لكل صف يبطئ العرض، لكن في واجهات الكانبان حيث البطاقات الصغيرة مفيدة، تُستخدم الصور لتمييز المنتجات أو جهات الاتصال بسرعة.


اختلافات الحقول: Image مقابل Binary

من المهم التمييز: الحقل الثنائي يستوعب أي ملف—PDF أو إكسل أو أرشيف—بينما حقل الصورة مُصمَّم خصيصًا للصور. حقل الصورة يطبق قيودًا وصيغ تغيير حجم ويفعل ويدجت العرض تلقائيًا. لذا للصور والشعارات استخدم Image، وللمستندات استخدم Binary.

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


عند رفع صورة إلى الحقل، أودو لا يخزن الملف كما هو فقط؛ بل يتعامل معه أولًا.


تغيير الحجم التلقائي

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

الحد الافتراضي القياسي هو أن يكون أكبر بُعد للصورة 1920 بكسل، لذلك في القوالب القياسية ستجد اسماء مثل image_1920 على نماذج المنتجات أو جهات الاتصال.


نسخ بأحجام متعددة

في نماذج أودو المدمجة ترى عادة عدة حقول مرتبطة بالصورة الأساسية: image_1920 وimage_1024 وimage_512 وimage_256 وimage_128. كل واحد منها حقل صورة مرتبط يُخزّن نسخة بأبعاد أقل.


الفكرة بسيطة: تقديم الحجم المناسب للمناسبة. صفحات القوائم تجلب صغيرة 128 بكسل لسرعة التحميل، وصفحة التفاصيل تحمل الصورة الكبيرة لعرض أوضح. عند بناء نموذج مخصص فكّر إن كنت بحاجة لنسخ متعددة حسب أماكن العرض.


التخزين كمرفقات

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


عمليًا هذا يحافظ على خفة جداول البيانات ويوفّر روابط يمكن استدعاؤها مباشرة مثل /web/image/product.template/42/image_1920 التي تُستخدم في الموقع الإلكتروني، قوالب الإيميل، وواجهات الـ API.


التحكم في الوصول

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

حالات استخدام تجارية


أين تُستخدم حقول الصور عمليًا؟


1. كتالوج المنتجات (المبيعات والمخزون)

صور المنتجات من أكثر المظاهر وضوحًا؛ كل قالب منتج يحتوي على image_1920 وتظهر هذه الصور في المتجر الإلكتروني، على فواتير المبيعات، في نقاط البيع، وعلى أجهزة المسح في عمليات الشحن.

عند وجود كتالوج ضخم غالبية الشركات ترفع الصور برمجياً عبر الـ API بدل القيام بذلك يدويًا. الحقل يستقبل بيانات مشفرة بقاعدة64، فعملية رفع الصور عبر XML-RPC أو JSON-RPC مباشرة سهلة وآلية.


2. شعارات العملاء والموردين (CRM والمشتريات)

نموذج res.partner يحوي حقل صورة للشركات والأشخاص؛ يظهر الشعار في نموذج الشريك، بمنطقة المحادثات، وببطاقات الكانبان. وجود شعار على سجل العميل يسهل على الفريق التجاري تمييز الحسابات بصريًا.


3. صور الموظفين (الموارد البشرية)

نموذج hr.employee يحتفظ بصورة كل موظف؛ تظهر في دليل الموظفين، أحيانًا على كشف الرواتب، وفي المحادثات بجانب الرسائل. فرق الموارد البشرية غالبًا ما ترفع دفعات صور الموظفين عند التوظيف الجماعي عبر الاستيراد أو الـ API.


4. صور المعدات والأصول (الصيانة)

في وحدة الصيانة يمكن ربط صورة بالمعدات. الفنيون الميدانيون يستفيدون من وجود صورة الجهاز ضمن أمر الصيانة لتأكيد تعريف المعدة بسرعة قبل بدء الإصلاح.


5. استمارات تفتيش أو ضمان الجودة المخصصة

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

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


طريقتان أساسيتان لإضافة حقل صورة: بدون كود عبر استوديو أودو، أو بكود بايثون لمن يريد تحكمًا أدق.


باستخدام Odoo Studio

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


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

الحقول المنشأة من استوديو تُسبَق عادةً بـ x_studio_ كتسمية افتراضية، مثل x_studio_site_photo، وتعمل مثل الحقول الأصلية من حيث التخزين والعرض.


باستخدام بايثون (تطوير أودو)

للتخصيصات التقنية تُعرَّف الحقول داخل ملف نموذج بايثون. المثال التالي يوضح كيفية إضافة حقل صورة إلى نموذج مخصص.


from odoo import models, fields

class SiteInspection(models.Model):
    _name = 'site.inspection'
    _description = 'Site Inspection'

    name = fields.Char(string='Reference', required=True)
    photo = fields.Image(
        string='Site Photo',
        max_width=1920,
        max_height=1920,
    )
    photo_128 = fields.Image(
        related='photo',
        max_width=128,
        max_height=128,
        store=True,
        string='Thumbnail',
    )

معلمات max_width وmax_height تختص بتحديد حدود الصورة المخزنة عند الحفظ. الحقل الثاني photo_128 هنا هو حقل مرتبط يخزن نسخة مصغرة تُستخدم في الكانبان أو القوائم — نمط شائع لتوزيع أحجام الصور.


إضافة الحقل إلى الواجهة

بعد تعريف الحقل يجب تضمينه في العرض حتى يظهر للمستخدم. في XML عرض النموذج تُستخدم الخاصية widget="image" لعرضها كصورة.

<field name="photo" widget="image" class="oe_avatar"/>

فئة oe_avatar تعرضها كأفتار دائري في أعلى يسار النموذج بالستايل القياسي. يمكنك إزالة الفئة لوضع الصورة ضمن التخطيط العادي للنموذج.

أفضل الممارسات


توصيات عملية للعمل مع حقول الصور في أودو


حدد حدود حجم مناسبة

حد 1920 بكسل مناسب لمعظم الحالات؛ لا تزيده إلا لسبب قوي مثل صور عالية الدقة للطباعة، لأن الصور الأكبر تعني مرفقات أثقل وتأثيرًا على حجم قاعدة البيانات وسرعة تحميل الصفحات.


أنشئ نسخة مصغرة للقوائم والكانبان

إن كنت ستعرض الصورة في قوائم أو بطاقات كانبان فاعمل حقلًا مرتبطًا صغيرًا بحدود 128 أو 256 بكسل. استدعاء صورة 128 بكسل أسرع بكثير من تحميل 1920 بكسل لكل بطاقة على الشاشة.


استخدم الـ API للتحميل بالجملة

عند الحاجة لرفع صور لمئات أو آلاف السجلات لا تستخدم الواجهة اليدوية. استعمل XML-RPC أو JSON-RPC لكتابة بيانات base64 آليًا للحقل — أسرع ويمكن تشغيله كسكربت مؤتمت.


اضغط الصور قبل الرفع

مع أن أودو يقلل الأبعاد تلقائيًا إلا أنه لا يضغط الصورة دائمًا بكفاءة. صورة JPEG بحجم 5 ميغابايت بعد تقليصها قد تبقى مئات الكيلوبايت. ضغط الصور مسبقًا يساعد في الحفاظ على أحجام مرفقات معقولة خاصةً في الكتالوجات الكبيرة.


تجنب الحقول الصورية في قوائم يتم استعلامها بكثرة

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


الأخطاء الشائعة


الأخطاء الأكثر شيوعًا عند التعامل مع الحقول الصورية


خلط بين Binary و Image

حقل Binary بدون ويدجت الصورة سيظهر كزر تحميل وليس معاينة. لعرض صورة بشكل صحيح تحتاج إما لحقول fields.Image أو لحقل Binary مع widget="image" في العرض. هذا خطأ شائع خاصةً في إصدارات أقدم.


التفكير المتأخر في نسخ الأحجام

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


تخزين الصور مباشرة داخل جداول السجلات بدل المرفقات

في نسخ قديمة أو إعدادات خاطئة قد يُخزَّن الثنائي مباشرةً في عمود الجدول، ما يضخم حجم الجداول ويبطئ الاستعلامات. تأكد من إعداد التخزين كملفات أو استخدام S3 إن لزم.


استخدام الحقول الصورية لتخزين مستندات

بعض الفرق تحاول حفظ مستندات ممسوحة أو لقطات شاشة في حقول الصورة. رغم إمكانية ذلك، إلا أنه ليس الأداة الصحيحة؛ للمستندات استخدم وحدة Documents أو حقل Binary مهيأ لتنزيل الملفات. الحقول الصورية مخصّصة للصور والشعارات لا للملفات متعددة الصفحات.


نسيان صلاحيات الوصول في الصفحات العامة

عرض روابط الصور على موقع عام أو بوابة بينما السجل الأساسي غير متاح للمستخدمين العامين يؤدي لخطأ 404. عند بناء صفحات ويب أو بوابات تأكد من أن صلاحيات الصورة تتناسب مع جمهور العرض.

خلاصة


خلاصة تقنية وعملية


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


لمستخدمي الأعمال يكفي معرفة أن الصور مخزنة بشكل آمن وممكن الوصول إليها عبر روابط متوقعة، وللمطورين يُنصح بالاعتياد على نمط fields.Image مع حقول مصغرة مرتبطة لإدارة الأحجام بكفاءة.

هل تحتاج مساعدة في تنفيذ أودو؟


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

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

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