اذهب إلى المحتوى
  • 0

كيفية الحصول على أحدث المنشورات بترتيب تصاعدي في جانغو Django؟

Mohssen A Mohssen

السؤال

أريد أن أقوم بجلب أحدث 10 منشورات من قاعدة البيانات، وفرز النتائج حسب id بترتيب تصاعدي، قمت بتجربة الكود التالي:

Article.objects.filter(since=since)[:-10]

ولكن الكود السابق يظهر خطأ يقول إن "Negative Indexing is not supported" . والآن لا أستطيع جلب المنشورات إلا بإستخدام ترتيب تنازلي:

Article.objects.filter(since=since)[:10]

ثم أقوم بعكس الترتيب مرة أخرى في الواجهة الأمامية Frontend.

هل هناك طريقة أفضل لجلب المنشروات بترتيب عكسي من قاعدة البيانات مباشرة؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

نعم هناك طريقة باستخدام order_by التي تسمح بترتيب المجموعة QuerySet الناتجة عن الفرز الذي قُمت به .

للترتيب من الأقدم إلى الأحدث نقوم ب:

qs = Article.objects.filter(since=since).order_by("id")

أما من الأحدث إلى الأقدم نقوم ب:

qs = Article.objects.filter(since=since).order_by("-id")

 لجلب أحدث 10 منشورات نُضيف:

qs = Article.objects.filter(since=since).order_by("-id")[:10]

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

يمكنك تجربة ذلك الكود لجلب العناصر بترتيب تصاعدي

Reserved.objects.filter(client=client_id).order_by('check_in')

بالعلم أن client = client هي متغيره يمكن إستبدالها على سبيل المثال حسب المستخدم في مشروعك سواء id او slug و أ، check_in هو الحقل الذي ترغب من الإرجاع منه مثلاً حقل يحتوي على تاريخ و تريد الترتيب من الأحدث للأقدم أو العكس

و ذلك الكود إضافي للترتيب التنازلي

Reserved.objects.filter(client=client_id).order_by('-check_in')

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...