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

السؤال

نشر

لدي النماذج User و Interest، النموذج User لديه علاقة Many-to-Many مع النموذج Interest (وهي عبارة عن models.ManyToManyField(Interest)).

أقوم بإنشاء نسخة من User يسمى my_user. وفي الحقل Interest، لديّ مجموعة Interests (اهتمامات) باسم my_interest، على النحو التالي:

>>> my_user.interests.all()
[my_interest, ...]

كيف يمكنني إزالة my_interest من my_user دون حذف أي من المستخدم my_user أو الاهتمامات my_interest من قاعدة البيانات؟ بمعنى آخر، كيف يمكنني إزالة العلاقة دون التأثير على النماذج نفسها لكي تبقى الكائنات موجودة؟

Recommended Posts

  • 1
نشر (معدل)

الأمر بسيط أولا قم بجلب الكائن my_interest باستعمال الدالة get مثلاً:

my_interest = Interest.objects.get(id=my_interest_id)
#قمت بجلب الكائن باستعمال معرفه
#يمكنك جلبه بأي خاصية من خصائصه

بعدها احذف الرابطة بينه وبين my_user:

my_user.interests.remove(my_interest)
# ملاحظة:
#remove 
#تقوم بالفصل بين الكائنين ولا تقوم بحذف أي منهما

 

تم التعديل في بواسطة مسعود زاهي
  • 0
نشر

إذا كنت بحاجة إلى إزالة جميع مراجع M2M دون لمس الكائنات الأساسية، فمن الأسهل العمل من اتجاه آخر:

interest.mood_set.clear()

على الرغم من أن هذا لا يعالج سؤال OP بشكل مباشر، إلا أنه غالبًا ما يكون مفيدًا في هذه الحالة.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...