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

السؤال

نشر

عندما تكون لديك علاقةmany-to-many (related_name) وتحاول استخدام لوحة التحكم ، فأنت مطالب بإدخال إحدى العلاقات على الرغم من أنه لا يلزم وجودها حتى تتمكن من إنشاء الإدخال الأول.

أنا أقوم بإنشاء تطبيق منظم أحداث ترفهيية events. تخيل أن لدينا النماذج Event وGroup، مرتبطة بعلاقة many-to-many.

أعلم أن Django  ينشئ جدولًا آخر به فهارس الجدولين الآخرين (events و groups). لكني لا أرى أي سبب لضرورة وجود هذا الجدول الإضافي. أنا كنت أعمل مع قاعدة البيانات الخاصة بالمشروع من خلال phpMyAdmin ، ويمكنني إنشاء مجموعة Group بدون تسجيل كائن حدث Event، نظرًا لأن الاتصال بين الاثنين يتم فقط من خلال جدول منفصل ، ولا يوجد فرض لقيمة قاعدة البيانات على مستوى الجدول ذاته.

كيف أجعل لوحة التحكم تدرك ذلك؟ كيف أجعل حقل many-to-many اختياريًا في  جانغو Django؟

Recommended Posts

  • 1
نشر

Django سيجبرك على إدخال كل الحقول التي لا تحتوي على الخاصية blank=True أو null=True وبالتالي يجب أن تضيف الخاصية blank=True إلى حقل many-to-many، على النحو التالي:

class Group(models.Model):
    events = models.ManyToManyField(Event, blank=True)

ملاحظة: الخاصية  null=True ليس لديها أي تأثير على العلاقات من نوع many-to-many، لذلك قمنا بإستعمال الخاصية blank=True، حيث أنها تستعمل في عملية التحقق validation في Django بينما الخاصية null=True تستخدم على مستوى قاعدة البيانات (جعل الحقل nullable)، وبالتالي يكون من المنطقي أن نتسعمل الخاصية blank=True فقط.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...