delete()
حذف سجل أو مجموعة سجلات delete()
delete() تحذف كائنًا واحدًا أو كل نتائج QuerySet دفعة واحدة، وتُرجع عدد السجلات المحذوفة مع تفصيل حسب النوع.
على كائن مفرد، Model.delete() تحذفه وتحترم سلوك on_delete المُعرَّف بأي علاقة ForeignKey تشير إليه (مثل CASCADE). على QuerySet كامل، delete() الجماعية تُنفَّذ بأقل عدد استعلامات ممكن، وقد لا تستدعي delete() المخصّصة لكل كائن على حدة.
الصياغة
instance.delete() Model.objects.filter(...).delete()
📄 مثال
# حذف كائن واحد
post = Post.objects.get(pk=1)
post.delete()
# حذف جماعي — كل المسوّدات القديمة
Post.objects.filter(status="draft", created_at__lt=cutoff_date).delete()
# يُرجع: (5, {'blog.Post': 5})💡 نصائح عملية
- راجع دائمًا خيار on_delete بحقول ForeignKey المرتبطة قبل حذف جماعي — قد يحذف سجلات مرتبطة تلقائيًا (CASCADE) بلا تحذير إضافي
⚠️ أخطاء شائعة
- استدعاء Model.objects.all().delete() بالخطأ بلا فلتر — يحذف كل سجلات الجدول دفعة واحدة بلا رجعة
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار DJANGO الكامل بالعربي.