چگونه در Django از قابلیت Order By در QuerySet استفاده کنیم؟

django queryset order by guide
20 آبان 1403

در زبان برنامه‌نویسی پایتون و فریم‌ورکی مانند Django، کار با داده‌ها بسیار ساده و روان انجام می‌شود. یکی از قابلیت‌های مهم برای تعامل با داده‌ها در پایگاه داده، امکان مرتب‌سازی یا همان Order By می‌باشد که به ما اجازه می‌دهد نتایج کوئری‌ها را بر اساس یک یا چند فیلد مرتب کنیم.

قابلیت Order By در QuerySets ابزاری قوی است که می‌تواند به توسعه‌دهندگان کمک کند داده‌های بازیافت‌شده از پایگاه داده را به ترتیب موردنظر خود مرتب کنند. این ویژگی به‌خصوص در نمایش فهرست‌های مرتب‌شده از آیتم‌ها در صفحات وب، مانند فهرست محصولات فروشگاه آنلاین یا مطالب وبلاگ، مفید است.

شیوه استفاده از این قابلیت بسیار ساده است؛ تنها کافی است هنگامی که یک QuerySet می‌سازید، متد order_by() را به آن اضافه کنید و فیلدهای موردنظر برای مرتب‌سازی را در آن مشخص نمایید.

به‌عنوان مثال، فرض کنید مدل شما یک فهرست از محصولات فروشگاه را نگهداری می‌کند و می‌خواهید این فهرست را بر اساس قیمت هر محصول به ترتیب صعودی نمایش دهید. برای انجام این کار در Django، به‌سادگی می‌توانید از قابلیت Order By استفاده کنید.

بیایید یک مثال عملی ببینیم که چگونه می‌توان با استفاده از متد order_by() یک فهرست از محصولات را مرتب‌سازی کرد:

from myapp.models import Product

# گرفتن محصولات به ترتیب صعودی بر اساس قیمت
products = Product.objects.all().order_by('price')

در مثال بالا، از مدل Product برای بازیابی تمام محصولات موجود در پایگاه داده استفاده کردیم و سپس با استفاده از متد order_by('price') آنها را بر اساس فیلدی به نام price مرتب کردیم.

توضیح خط به خط کد

from myapp.models import Product
این خط کلاس Product را از فایل models.py در برنامه کاربردی myapp وارد می‌کند.
products = Product.objects.all()
ایجاد یک کوئریست که تمام آیتم‌های مدل Product را از پایگاه داده بازیابی می‌کند.
order_by('price')
آیتم‌های بازیابی‌شده را بر اساس فیلد price مرتب‌سازی می‌کند.

سوالات متداول

؟

چگونه می‌توان در Django داده‌ها را به صورت نزولی مرتب‌سازی کرد؟

؟

آیا می‌توان بر اساس چندین فیلد مرتب‌سازی کرد؟