متدهای پایه


🟒 بازیابی داده‌ها (Retrieving Data)

در اولین گام، نیاز است داده‌های ذخیره‌شده در پایگاه داده فراخوانی شوند. جنگو برای این کار مجموعه‌ای از متدهای پرس‌وجو (QuerySet methods) را در اختیار قرار می‌دهد که هر یک کارکرد مشخصی دارند: از جمله بازیابی تمام رکوردها، دریافت یک رکورد منحصربه‌فرد، فیلتر کردن نتایج بر اساس شرایط دلخواه و همچنین حذف رکوردهای نامرتبط از مجموعه نتایج.

این متدها پایه و اساس کار با داده‌ها در ORM هستند و در اکثر پروژه‌ها بیشترین استفاده را دارند.

⸺ دریافت همه رکوردها

projects = project.objects.all()

✅ این متد تمام رکوردهای مدل project را برمی‌گرداند. در عمل معادل SELECT * FROM coreapp_project در SQL است.
📌 کاربرد: زمانی که بخواهیم کل داده‌های یک جدول را نمایش دهیم (به عنوان مثال لیست همه پروژه‌های اجرا شده).


 

⸺ دریافت یک رکورد خاص

projectObj = project.objects.get(id="4f0928dd-5d68-484c-bd19-aa7a18d27d66")

✅ متد get() فقط یک رکورد را بر اساس شرط مشخص برمی‌گرداند.
⚠️ اگر هیچ رکوردی پیدا نشود → خطای DoesNotExist
⚠️ اگر بیش از یک رکورد پیدا شود → خطای MultipleObjectsReturned

📌 کاربرد: زمانی که مطمئن هستیم شرط دقیقاً یک رکورد را مشخص می‌کند (مثل id یا username که منحصربه‌فرد و یا به اصطلاح Unique هستند).


 

⸺ فیلتر کردن رکوردها

projectObjs = project.objects.filter(subject="Health")

✅ متد filter()، لیستی از رکوردهایی که شرایط را احراز می‌کنند، برمی‌گرداند.
📌 کاربرد: گرفتن لیست داده‌هایی که ویژگی مشترک دارند. ( بعنوان مثال 🡠 همه پروژه‌های اجرا شده در موضوع سلامت Health )


 

⸺ حذف رکوردهای نامرتبط

projectObjs = project.objects.exclude(subject="Sports")

✅ متد exclude()، برعکس filter() عمل می‌کند؛ یعنی رکوردهایی که مصداق شرط را ندارند، برمی‌گرداند.
📌 کاربرد: وقتی بخواهیم همه داده‌ها به جز یک دسته خاص را نمایش دهیم.( بعنوان مثال 🡠 همه پروژه‌های اجرا شده یه غیر از موضوع ورزش Sports )