متدهای کمکی پرکاربرد


گاهی تنها به یک رکورد خاص (مثل اولین یا آخرین مورد) یا اطلاعات خلاصه‌ای مانند تعداد کل رکوردها نیاز داریم. جنگو برای این موارد متدهای کمکی ساده‌ای مانند first(), last(), count() و exists() را فراهم کرده است تا بتوانیم بدون نوشتن کوئری‌های پیچیده یا اضافی، به‌صورت کارآمد و خوانا با داده‌ها کار کنیم.

 

⸺ اولین رکورد

اولین رکورد از مجموعه نتایج را برمی‌گرداند (بر اساس ترتیب پیش‌فرض یا order_by). اگر رکوردی وجود نداشته باشد، مقدار None را برمی‌گرداند — خطا نمی‌دهد.

projectObj = project.objects.first()

⸺ آخرین رکورد

آخرین رکورد از مجموعه نتایج را برمی‌گرداند. مانند first()، در صورت عدم وجود داده، None بازمی‌گرداند.

projectObj = project.objects.last()

💡 نکته: first() و last() بر اساس ترتیب تعیین‌شده توسط order_by() عمل می‌کنند. اگر order_by مشخص نشده باشد، ترتیب بر اساس primary key در نظر گرفته می‌شود.


⸺ تعداد رکوردها

تعداد کل رکوردها را به‌صورت یک عدد صحیح برمی‌گرداند. این متد بهینه‌تر از len(Project.objects.all()) است، چون در پس‌زمینه از SELECT COUNT(*) استفاده می‌کند و داده‌های واقعی را fetch نمی‌کند.

 
projectObj = project.objects.count()

⸺ بررسی وجود رکورد

بررسی می‌کند که آیا حداقل یک رکورد با شرط مورد نظر وجود دارد یا خیر. نتیجه یک مقدار True یا False است. این روش بهینه‌ترین راه برای چک کردن وجود داده است، چون فقط یک سطر از دیتابیس را بررسی می‌کند و داده‌های اضافه‌ای را بارگیری نمی‌کند.

projectExist = project.objects.filter(subject="AI").exists()