طرق وحدة التحكم
طرق وحدة التحكم
تتيح لك طرق وحدة التحكم كتابة منطق الأعمال (business logic) خلال دورة حياة المستند.
لنقم بإنشاء نوع المستند الثاني: Library Member. سيكون له الحقول التالية:
- First Name (نوع Data، إلزامي Mandatory)
- Last Name (نوع Data)
- Full Name (نوع Data، للقراءة فقط Read Only)
- Email Address (نوع Data)
- Phone (نوع Data)
بعد إنشاء نوع المستند، انتقل إلى قائمة Library Member، ومسح ذاكرة التخزين المؤقت من الإعدادات (Settings) > إعادة تحميل (Reload) وأنشئ عضو مكتبة جديد.
إذا لاحظت، فإن حقل Full Name غير معروض في النموذج. هذا لأننا عيناه كـ للقراءة فقط. سيظهر فقط عندما يكون له قيمة.
دعنا نكتب كودًا في فئة وحدة تحكم Python الخاصة بنا بحيث يتم حساب Full Name تلقائيًا من First Name و Last Name.
افتح محرر الكود الخاص بك وافتح الملف library_member.py وقم بإجراء التغييرات التالية:
library_member.py
class LibraryMember(Document):
# هذه الطريقة ستعمل في كل مرة يتم فيها حفظ مستند
def before_save(self):
self.full_name = f'{self.first_name} {self.last_name or ""}'
ملاحظة: إذا لم يعمل المقتطف أعلاه لك، فتأكد من تمكين البرامج النصية من جانب الخادم، ثم أعد تشغيل bench:
bench set-config -g server_script_enabled true
لقد كتبنا المنطق في طريقة before_save التي تعمل في كل مرة يتم فيها حفظ مستند. هذا أحد الخطافات (hooks) العديدة التي توفرها فئة Document. يمكنك معرفة المزيد عن جميع الخطافات المتاحة في وثائق وحدة التحكم.
الآن، عد وأنشئ عضو مكتبة آخر وشاهد ظهور الاسم الكامل بعد الحفظ.