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

السؤال

Recommended Posts

  • 1
نشر

يمكنك أن تقوم بذلك بعدة طريق، منها:

  • ضع علامة - قبل اسم الحقل، كالتالي:
    User.objects.all().filter(role='user').order_by('-created_at')

    هنا يتم جلب النتائج من قاعدة البيانات بشكل عكسي أي من خلال جملة ORDER BY DESC في SQL، وتعد هذه هي الطريقة الأسرع في تنفيذ المهمة.

  • إستخدم التابع reverse()، كالتالي:
    User.objects.all().filter(role='user').order_by('created_at').reverse()

    هنا يتم جلب البيانات بترتيب تصاعدي، ثم يقوم Django بعكس ترتيب النتائج.

  • إستخدم ترتيب القائمة العكسي، كالتالي:
    User.objects.all().filter(role='user').order_by('created_at')[::-1]

    تستخدم هذه الطريقة فقط إن أردت تحويل النتائج إلى قائمة list وليس queryset.

 

  • 0
نشر

ستؤدي إضافة - إلى ترتيبها بترتيب تنازلي. يمكنك أيضًا تعيين هذا عن طريق إضافة ترتيب افتراضي إلى التعريف الخاص بنموذجك. هذا يعني أنه عند إجراء استعلام ، تقوم فقط بعمل MyModel.objects.all () وسيظهر بالترتيب الصحيح.

class MyModel(models.Model):
    check_at = models.DateField()
    class Meta:
        ordering = ('-check_at',)

كما يمكنك استخدام earliest و latest كالتالي:

User.objects.filter(role='user').earliest('check_at')
# أو 
User.objects.filter(role='user').latest('-check_at')

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...