django - نموذج جانغو: كيفية الإشارة إلى النفس؟




django-models (3)

أعتقد أنه يمكنك حتى استبعاد اسم التطبيق الذي سيبدو كما يلي:

ref_employee= models.ForeignKey('Employee',null=True,blank=True)

افترض لدينا Employee الطبقة. أريد الحصول على حقل يشير إلى مثيل مختلف من نفس الفئة.

كيف تكتب هذا؟ ماذا عن الكود التالي؟

ref_employee= models.ForeignKey('self',null=True,blank=True)

يمكنك الرجوع إلى نماذج أخرى حسب الاسم (باستخدام سلسلة ، بما في ذلك الحزمة) ، بدلاً من الفئة مباشرة:

لذا ، إذا كانت فئة Employee في تطبيق hr :

class Employee(models.model):
   other_employee = models.ForeignKey('hr.models.Employee', null=True, blank=True)

http://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey

لإنشاء علاقة متكررة - كائن يحتوي على علاقة متعددة مع نفسه - استخدم models.ForeignKey('self') .

لذلك كنت على حق. عادة ما يكون أسرع لتحديد ما إذا كان الكود سيفعل ما تريد عن طريق تشغيله :)





django-models