Marwan Ben Chami نشر 23 يناير أرسل تقرير نشر 23 يناير (معدل) لم افهم أنواع العلاقات في django و اريد مقال تفصيلي عن أنواع العلاقات في django تم التعديل في 23 يناير بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس
1 Mustafa Suleiman نشر 23 يناير أرسل تقرير نشر 23 يناير أرجو التعليق أسفل فيديو الدورة لمساعدتك بشكل أفضل وطرح الأسئلة العامة هنا، وستجد المقالات والنقاشات التالية عونًا لك: وتصنف العلاقات في Django إلى ثلاثة أنواع رئيسية: علاقات واحد إلى واحد (One-to-One Relationships) علاقات واحد إلى كثير (One-to-Many Relationships) علاقات كثير إلى كثير (Many-to-Many Relationships) علاقات واحد إلى واحد (One-to-One Relationships) في علاقة واحد إلى واحد، يرتبط كل كائن من كائنين بحد أقصى بكائن واحد من الكائن الآخر، أي أن يكون لدى كل شخص بطاقة هوية واحدة، ولكن يمكن أن يكون لدى كل بطاقة هوية شخص واحد فقط. لنفترض أن لدينا نموذجين: Person و IdentityCard، ونريد أن نربط كل شخص ببطاقة هوية واحدة فقط، وكل بطاقة هوية بشخص واحد فقط. # models.py class Person(models.Model): name = models.CharField(max_length=255) identity_card = models.OneToOneField( 'IdentityCard', on_delete=models.CASCADE) class IdentityCard(models.Model): number = models.CharField(max_length=10) هنا نستخدم حقل OneToOneField لربط الكائنين. يُحدد الحقل on_delete ما يجب القيام به بالكائن المرتبط عندما يتم حذف الكائن الرئيسي، ونريد حذف الكائن المرتبط أيضًا، لذلك نستخدم on_delete=models.CASCADE. علاقات واحد إلى كثير (One-to-Many Relationships) تتيح لنا ربط كل كائن من كائن واحد بالعديد من الكائنات من كائن آخر، مثلاً لدى كل مدرس العديد من الطلاب، ولكن يمكن أن يكون لدى كل طالب مدرس واحد فقط. ولنفترض أن لدينا نموذجين هما Teacher و Student، ونريد أن نربط كل مدرس بالعديد من الطلاب، وكل طالب بمدرس واحد فقط. # models.py class Teacher(models.Model): name = models.CharField(max_length=255) students = models.ManyToManyField( 'Student', through='Enrollment') class Student(models.Model): name = models.CharField(max_length=255) نعتمد على حقل ManyToManyField لربط الكائنين، ويُستخدم حقل through لتحديد جدول وسيط يربط الكائنين هو Enrollment. علاقات كثير إلى كثير (Many-to-Many Relationships) يرتبط كل كائن من كائنين بالعديد من الكائنات من الكائن الآخر، مثل أن يكون لدى كل كتاب العديد من المؤلفين، ويمكن أن يكون لدى كل مؤلف العديد من الكتب. ولنفترض أن لدينا نموذجين Book و Author، ونريد أن نربط كل كتاب بالعديد من المؤلفين، وكل مؤلف بالعديد من الكتب. # models.py class Book(models.Model): title = models.CharField(max_length=255) authors = models.ManyToManyField( 'Author', through='BookAuthor') class Author(models.Model): name = models.CharField(max_length=255) لاحظ حقل ManyToManyField لربط الكائنين، ويُستخدم حقل through لتحديد جدول وسيط يربط الكائنين يسمى BookAuthor. اقتباس
0 Khaled Osama3 نشر 23 يناير أرسل تقرير نشر 23 يناير العلاقات فى Django هى العلاقات العادية فى ال database وهى ثلاثة علاقات رئيسية وهم : العلاقة الواحد للواحد (one to one). العلاقة الواحد إلى الكثير(one to many). والعلاقة الكثير إلى الكثير (many to many). وده شرح كل وحادة منهم على حدا: العلاقة الواحد للواحد (one to one) : تستخدم عندما يكون لديك نموذج واحد يمكن أن يرتبط بعدة نماذج. مثال: علاقة بين نموذج "كتاب" ونموذج "مؤلف"، حيث يمكن للكتاب أن يكون له أكثر من مؤلف. العلاقة الواحد إلى الكثير(one to many): تستخدم عندما يكون لديك نموذج واحد يمكن أن يرتبط بعدة نماذج. مثال: علاقة بين نموذج "كتاب" ونموذج "مؤلف"، حيث يمكن للكتاب أن يكون له أكثر من مؤلف. والعلاقة الكثير إلى الكثير (many to many): تستخدم عندما يكون لديك نموذج يمكن أن يرتبط بعدة نماذج، والنماذج الأخرى يمكنها أيضًا أن تكون مرتبطة بعدة نماذج. مثال: علاقة بين نموذج "طالب" ونموذج "دورة"، حيث يمكن للطلاب أن يكونوا مسجلين في عدة دورات وكل دورة يمكن أن تكون لها عدة طلاب. اقتباس
السؤال
Marwan Ben Chami
لم افهم أنواع العلاقات في django
تم التعديل في بواسطة Mustafa Suleimanو اريد مقال تفصيلي عن أنواع العلاقات في django
تعديل عنوان السؤال
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.