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

كيفية جعل الإختيارات Choices تقتصر على الكائنات الموجودة في علاقة Relationship في جانغو Django؟

Mohssen A Mohssen

السؤال

لدي نموذجين Models بالشكل التالي:

class Student(models.Model):
  name = models.CharField(max_length=255)
  favorite = models.ForeignKey("Favorite", blank=True, null=True)

  
class Favorite(models.Model):
  name = models.CharField(max_length=255)
  mystudent = models.ForeignKey(Student)

كيف أجعل الاختيارات الخاصة بالخاصية favorite لدى الطالب تقتصر فقط على العناصر المفضلة الخاصة بالطالب نفسه؟

حاولت أن أعدل الكود ليكون بالشكل التالي:

  favorite = models.ForeignKey("Favorite", blank=True, null=True, limit_choices_to = {"mystudent": "self"})

ولكن لم تنجح هذه الطريقة أبدًا، هل توجد طريقة جعل الاختيارات الخاصة بالخاصية favorite لدى الطالب تقتصر فقط على العناصر المفضلة الخاصة به في جانغو Django؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

بالبداية انت لديك علاقة بين student وFavorite

عند الاختيار وعرض الخيارات هو بالتأكيد سوف يعرض جميع الخيارات Favorite لأنه كيف سيتم عرض العناصر المفضلة الخاصة بالطالب وهو الطالب لم ينشئ بعد ! كما أرى انت منشئ علاقة ForignKey تشاركية عند ال student و Favorite

فالأفضل حذف العلاقة من جدول او model ال Favorite ووضع العلاقة manyTomany في model ال student

favorite = models.ManyToManyField("Favorite", blank=True, null=True)

في قواعد البيانات عند إنشاء علاقة manyTomany فإن Django في الخفاء في قاعدة البيانات سوف ينشئ جدول غير ظاهر  يوجد به " Id student : Id favorite " وهكذا سيصبح التعامل افضل لك بإضافة وجلب بيانات ال  Favorite الخاصة بكل student دون تعقيد .

ارجو ان تكون فهمت الفكرة.

تم التعديل في بواسطة Haroun Taha
رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...