متدهای تغییر و حذف داده‌ها


سیستم ORM جنگو فقط برای خواندن داده‌ها طراحی نشده است؛ بلکه امکان بروزرسانی و حذف داده‌ها را نیز به‌صورت ایمن و کارآمد فراهم می‌کند—بدون نیاز به نوشتن دستورات SQL دستی.

 

⸺ بروزرسانی رکوردها

متد update()، رکورد(های) مطابق با شرط را مستقیماً در پایگاه داده به‌روزرسانی می‌کند.

project.objects.filter(id="4f0928dd-5d68-484c-bd19-aa7a18d27d66").update(title="New Title")
💡 بسیار سریع و کارآمد (یک کوئری SQL اجرا می‌شود).
⚠️ از سیگنال‌های save() و اعتبارسنجی مدل عبور نمی‌کند!

⸺ حذف رکوردها

همهٔ پروژه‌هایی که فیلد content آن‌ها خالی (NULL) باشد را به‌طور کامل از پایگاه داده حذف می‌کند.

project.objects.filter(content__isnull=True).delete()

💡 حذف انبوه با یک دستور ساده.
⚠️ این عملیات غیرقابل بازگشت است و از سیگنال pre_delete/post_delete پشتیبانی می‌کند (برخلاف update).