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

السؤال

نشر

أريد إنشاء نموذج PostModel يحتوي على حقل من نوع ForeignKey يشير إلى المعرف الأساسي id لكائن آخر من نفس النموذج، أي شيء كالتالي على سبيل المثال:

class PostModel(models.Model):
    parent = models.ForeignKey(PostModel)

هل يمكن عمل ذلك في قواعد البيانات (أي أن يشير مفتاح أجنبي ForeignKey إلى كائن آخر من نفس النموذج (في نفس الجدول))؟ أم أن هناك طرق أخرى للوصول إلى نفس النتيجة؟ وكيف أقوم بهذا؟

Recommended Posts

  • 1
نشر

يمكن القيام بهذا الأمر في جانغو Django بأكثر من طريقة:

يمكنك تمرير اسم النموذج كنص إلى ForeignKey وسوف يعمل كل شيء على ما يرام.

class PostModel(models.Model):
  parent = models.ForeignKey("PostModel")

أو يمكنك استخدام طريقة أكثر ديناميكية من خلال تمرير النص "self" فقط، على النحو التالي:

class PostModel(models.Model):
  parent = models.ForeignKey("self")

وتسمى العلاقة في هذه الحالة recursive relationship.

كما يمكنك تحديد ما الذي سيحدث عن حذف الكائن الأجنبي من خلال تحديد الخاصية on_delete كما في المثال التالي:

class PostModel(models.Model):
  parent = models.ForeignKey("self"), on_delete=models.CASCADE)

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...