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