اذهب إلى المحتوى

السؤال

نشر

في مشروع جانغو Django لدي يوجد ملف models.py وهذا الملف يحتوي على الكثير من الأصناف Classes وأصبح حجم الملف كبير للغاية ويزداد كلما طورت في المشروع أكثر

هل هناك طريقة بسيطة لإزالة الأصناف من ملف models.py وتظل تعمل مع جميع أدوات جانغو Django؟ أم أن هناك حلًا مختلفًا تمامًا لهذه المشكلة؟

Recommended Posts

  • 1
نشر

الطريقة الأولى : يمكنك إستخدام abstract = True اسفل نموذج تقوم بإنشاؤه يحتوي على كافة الحقول المتكرر إستخدامها في عدة نماذج بدل من كتابتها مره اخرى في models.py مما يسهل من عملية الوصول لتلك الحقول و عدم زيادة حجم الملف على سبيل المثال هنا نلاحظ أن الحقل name متكرر في النموذجين School / Student :

class School(models.Model): 
    name = models.CharField(max_length=100)
    number = models.IntergerField()
  
  
class Student(models.Model):  
    name = models.CharField(max_length=100)
    Phone = models.IntergerField()
    

حيثُ يُمكنك إنشاء نموذج موحد يحتوي على كافة الحقول التي يُعاد إستخدامها على سبيل المثال :

class CommonInfo(models.Model):
    name = models.CharField(max_length=100)

    class Meta:
        abstract = True

ثم بعد ذلك لا تعيد كتابة الحقل name مره اخرى في حال الرغبه في إعادة إستخدامه حيثُ يمكنك استدعاء النموذج CommonInfo بشكل مباشر في النموذج الجديد الذي ترغب أن يحتوي على الحقل name لتُصبح هكذا :

class School(CommonInfo): 
    number = models.IntegerField()
  
  
class Student(CommonInfo):  
    phone = models.IntegerField()

تلك الطريقه ستقلل من عدد الأسطر المستخدمه و بالتالي إنخفاض حجم الملف models.py 

الطريقه الثانيه : يمكنك تقسيم التطبيقات في المشروع الواحد عن طريق الأمر 

python manage.py startapp newapp

#بالعلم أن 
#newapp 
#هو متغير بإسم التطبيق الذي ترغب في انشاؤه

و ذلك حتى يحتوي المشروع الواحد على عدة تطبيقات على سبيل المثال :

  1. تطبيق للحسابات
  2. تطبيق للمنشورات
  3. تطبيق للتعليقات
  4. تطبيق لصفحات حول الموقع

و يكون لكل تطبيق ملف models.py الخاص به مما سيكون الأمر أكثر ترتيباً

  • 1
نشر

حسناً يبدو و أن مشروعك يحتوي على العديد من الخصائص و الميزات ،

كإقتراح ، عليك أن تقسم المشروع إلى مجموعة تطبيقات بدل أن تدمجه في مشروع واحد مثال :

مشروع مدونة :

  • تطبيق خاص بالصفحات الأساسية
  • تطبيق خاص بنظام إدارة المستخدمين
  • تطبيق خاص بالتدوينات
  • تطبيق خاص بالتصنيفات
  • إلخ ...

هذا يسهل عليك عملية صيانة الموقع و يعطيك قابلية للتوسع في التطوير .

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...