متدهای پایه


در اولین گام، نیاز است داده‌های ذخیره‌شده در پایگاه داده فراخوانی شوند — 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="Sport")

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