في جانغو ، واحدة من أطر تطوير الويب بيثون الأكثر شعبية ، والعلاقات بين النماذج هي واحدة من السمات الرئيسية. تسمح لك الروابط بدمج جداول قاعدة بيانات مختلفة وإنشاء تفاعل بينها.
ومع ذلك ، في بعض الأحيان يصبح من الضروري الوصول إلى الكائنات ذات الصلة في الاتجاه المعاكس. في جانغو ، هناك مفهوم ذات الصلة_اسم لهذا ، سمة نموذج تسمح لك بتعريف اسم حقل أو طريقة يمكنك من خلالها الوصول إلى التعليقات.
في هذه المقالة ، سوف ننظر في كيفية استخدام ذات الصلة_الاسم بشكل صحيح في جانغو ، ونلقي نظرة على بعض الأمثلة على استخدام هذه الوظيفة للعمل بشكل أكثر فعالية مع النماذج والعلاقات بينهما.
- لماذا اتصالات جانغو مهمة جدا?
- الأنواع الرئيسية للاتصالات في جانغو
- أمثلة على استخدام الروابط في جانغو
- واحد لواحد (واحد لواحد)
- واحد لكثير (واحد لكثير)
- كثير إلى كثير (كثير إلى كثير)
- العلاقات العكسية
- العلاقات الذاتية
- الجداول المتوسطة
- أولوية الروابط
- سؤال وجواب
- كيف يمكنني إنشاء اتصال بين نموذجين في جانغو?
- هل من الممكن إنشاء علاقة بين النماذج دون استخدام مفتاح أجنبي?
- كيف يمكنني الحصول على الكائنات المرتبطة كائن نموذج معين?
- كيف يمكنني حذف الكائنات ذات الصلة في جانغو?
لماذا اتصالات جانغو مهمة جدا?
جانغو هو إطار قوي لتطوير تطبيقات الويب في بيثون. واحدة من السمات الرئيسية ل جانغو هو دعم العلاقات بين النماذج ، والتي تلعب دورا هاما في بناء بنية بيانات معقدة في قاعدة بيانات.
تسمح لك العلاقات بإنشاء علاقات بين كائنات من نماذج مختلفة. يتيح لك ذلك إنشاء بنية تطبيق أكثر مرونة وقابلية للتطوير ، وتبسيط الوصول إلى البيانات ذات الصلة وإجراء استعلامات معقدة.
الأنواع الرئيسية للاتصالات في جانغو:
- واحد لواحد — واحد) - يرتبط كل كائن نموذج بكائن واحد فقط من نموذج آخر. مثال على ذلك هو العلاقة بين كائنات نموذج "المستخدم" و "الملف الشخصي" ، حيث يكون لكل مستخدم ملف تعريف واحد فقط.
- واحد إلى كثير (أجنبيمفتاح) - يمكن ربط كل كائن في نموذج واحد بعدة كائنات من نموذج آخر. مثال على ذلك هو العلاقة بين نماذج" المؤلف "و" المقالة " ، حيث يمكن أن يكون لمؤلف واحد مقالات متعددة.
- كثير إلى كثير (كثيرالعديد) — يمكن ربط كل كائن في نموذج واحد بعدة كائنات من نموذج آخر ، والعكس صحيح. مثال على ذلك هو العلاقة بين نماذج" الطالب "و" الدورة " ، حيث يمكن لكل طالب حضور عدة دورات ، ويمكن أن يحضر كل دورة عدة طلاب.
باستخدام العلاقات في جانغو يسمح لك لبناء التسلسلات الهرمية المعقدة من الكائنات وسهولة الوصول إلى البيانات ذات الصلة. على سبيل المثال ، عند استخدام مفتاح خارجي (أجنبيمفتاح) ، يمكنك بسهولة الحصول على مقالات تنتمي إلى مؤلف معين ، أو جميع التعليقات على منشور معين.
تساعد الاتصالات أيضا في إدارة سلامة البيانات في قاعدة البيانات. جانغو يسمح لك لإعداد الحذف التلقائي للكائنات ذات الصلة أو وضع قيود على تحديث أو حذف الكائنات ذات الصلة.
مفهوم الروابط هو واحد من العناصر الأساسية للتنمية جانغو ، واستخدامها بشكل صحيح يسمح لك لخلق تطبيقات الويب أكثر مرونة وقابلة للتطوير وكفاءة.
الأنواع الرئيسية للاتصالات في جانغو
يوفر جانغو عدة أنواع من العلاقات بين النماذج التي تسمح لك لتنظيم العلاقات بين البيانات في قاعدة بيانات. فيما يلي الأنواع الرئيسية للروابط في جانغو:
واحد لواحد( واحد): تعني هذه العلاقة أن كل كائن نموذج مرتبط بكائن واحد فقط من نموذج آخر. يمكنك استخدام هذه العلاقة لتحديد سمات إضافية أو توسيع نموذج موجود.
واحد إلى كثير (مفتاح أجنبي): تعني هذه العلاقة أنه يمكن ربط كل كائن نموذجي بعدة كائنات من نموذج آخر. مثال على ذلك هو العلاقة بين المدونة وتعليقاتها ، حيث يمكن ربط كل تعليق بمدونة واحدة فقط.
كثير إلى كثير (كثيرالعديد): تعني هذه العلاقة أنه يمكن ربط كل كائن نموذجي بعدة كائنات من نموذج آخر ، والعكس صحيح. مثال على ذلك هو العلاقة بين الطلاب والدورات ، حيث يمكن لكل طالب التسجيل في دورات متعددة ، ويمكن أن يكون لكل دورة عدة طلاب.
كل من هذه الأنواع من الاتصالات لها خصائصها الخاصة وتتطلب بعض التكوين في جانغو. ومع ذلك ، وذلك بفضل أورم جانغو (كائن-رسم الخرائط العلائقية) ، والعمل مع العلاقات بين النماذج تصبح بسيطة وبديهية.
من المهم فهم أنواع الروابط التي يجب استخدامها ، اعتمادا على الاحتياجات المحددة للمشروع ، من أجل تنظيم بنية البيانات بشكل فعال وجعل الكود أكثر قابلية للقراءة والصيانة.
أمثلة على استخدام الروابط في جانغو
في جانغو ، تستخدم العلاقات لتنظيم العلاقات بين النماذج. أنها تسمح لك بإنشاء علاقات تابعة وتعتمد بين كائنات مختلفة. فيما يلي بعض الأمثلة على استخدام الروابط في جانغو:
واحد لواحد (واحد لواحد)
علاقة واحد لواحد هي علاقة يتم فيها ربط كائن نموذج بكائن نموذج واحد لواحد آخر. على سبيل المثال ، قد يكون لديك نموذج "ملف تعريف المستخدم" مرتبط بنموذج "مستخدم" من خلال علاقة فردية. يكون هذا مفيدا عندما تريد إضافة حقول إضافية إلى طراز المستخدم.
واحد لكثير (واحد لكثير)
علاقة واحد لكثير هي علاقة حيث يتم توصيل كائن نموذج واحد إلى عدة كائنات من نموذج آخر. على سبيل المثال ، قد يكون لديك نموذج "منشور" مرتبط بنموذج "المؤلف" من خلال علاقة واحد إلى عدة. في هذه الحالة ، يمكن أن يكون مؤلف واحد مؤلفا لعدة مشاركات.
كثير إلى كثير (كثير إلى كثير)
العلاقة بين العديد والعديد هي علاقة ترتبط فيها عدة كائنات من نموذج واحد بعدة كائنات من نموذج آخر. على سبيل المثال ، قد يكون لديك نموذج "طالب" مرتبط بنموذج "دورة" من خلال علاقة متعددة إلى متعددة. في هذه الحالة ، يمكن تسجيل طالب واحد في دورات متعددة ، ويمكن أن تضم دورة واحدة عدة طلاب.
العلاقات العكسية
تسمح لك التغذية المرتدة بالوصول إلى الكائنات ذات الصلة في الاتجاه المعاكس. على سبيل المثال ، إذا كان لديك نموذج فئة ونموذج منتج حيث ينتمي كل منتج إلى فئة معينة ، فيمكنك الرجوع إلى الفئة المرتبطة بالمنتج باستخدام التعليقات. يتيح لك ذلك البحث عن المنتجات حسب الفئة والحصول على معلومات حول الفئة التي ينتمي إليها المنتج.
العلاقات الذاتية
تسمح الروابط الذاتية للنموذج بالإشارة إلى نفسه. على سبيل المثال ، قد يكون لديك نموذج "فئة" يحتوي على حقل "فئة أصل" ، بحيث يمكن ربط كل فئة بفئة أخرى كفئة أصل. هذا مفيد لتنظيم التسلسل الهرمي للبيانات.
الجداول المتوسطة
تستخدم الجداول الوسيطة عند العمل مع علاقات متعددة إلى متعددة. جانغو تلقائيا بإنشاء جدول وسيطة لتخزين العلاقات بين الكائنات. على سبيل المثال ، إذا كان لديك نموذج الطالب ونموذج بالطبع مع علاقة العديد إلى العديد ، سوف جانغو إنشاء جدول وسيطة التي سوف تحتوي على العلاقات بين الطلاب والدورات.
أولوية الروابط
في جانغو ، يمكنك تعيين أولوية الروابط لتحديد الترتيب الذي يجب معالجة الروابط عند حذف الكائنات أو تعديلها. وهذا مفيد عندما تكون هناك تبعيات بين الكائنات والتحديثات أو الحذف تحتاج إلى أن تدار.
سؤال وجواب
كيف يمكنني إنشاء اتصال بين نموذجين في جانغو?
لإنشاء ارتباط بين نموذجين في جانغو ، يمكنك استخدام حقل مفتاح أجنبي ، والذي يشير إلى النموذج المرتبط.
هل من الممكن إنشاء علاقة بين النماذج دون استخدام مفتاح أجنبي?
نعم ، بالإضافة إلى مفتاح أجنبي ، جانغو لديها أنواع أخرى من المجالات لخلق العلاقات ، مثل مانيتومانفيلد أو أونيتونفيلد.
كيف يمكنني الحصول على الكائنات المرتبطة كائن نموذج معين?
للحصول على جميع الكائنات المرتبطة بكائن طراز معين ، يمكنك استخدام طريقة الاسم المرتبط أو الوصول العكسي عبر روابط مفتاح أجنبي أو مانيتومانفيلد أو أونيتونفيلد.
كيف يمكنني حذف الكائنات ذات الصلة في جانغو?
لحذف الكائنات ذات الصلة في جانغو ، يمكنك استخدام أساليب حذف () أو مسح (). على سبيل المثال ، لحذف جميع الكائنات ذات الصلة في حقل مانيتومانفيلد ، يمكنك استخدام طريقة واضحة ().