Bird
0
0

Given this code snippet in a Django ListView:

medium📝 component behavior Q4 of 15
Django - DRF Advanced Features
Given this code snippet in a Django ListView:
def get_queryset(self):
    qs = super().get_queryset()
    search = self.request.GET.get('q')
    if search:
        qs = qs.filter(title__icontains=search)
    return qs.order_by('created_at')

What will be the order of results when accessed with a search query?
AAll results ordered by created_at descending, ignoring search
BFiltered by title containing search, ordered by created_at descending
CAll results ordered by created_at ascending, ignoring search
DFiltered by title containing search, ordered by created_at ascending
Step-by-Step Solution
Solution:
  1. Step 1: Analyze filtering logic

    If 'q' parameter exists, queryset is filtered by title containing search term.
  2. Step 2: Analyze ordering logic

    After filtering, queryset is ordered by 'created_at' ascending (default ascending).
  3. Final Answer:

    Filtered by title containing search, ordered by created_at ascending -> Option D
  4. Quick Check:

    Filter + order_by ascending = D [OK]
Quick Trick: Filter first, then order_by for correct result order [OK]
Common Mistakes:
MISTAKES
  • Assuming order_by is descending without '-'
  • Ignoring filtering when search query exists
  • Confusing order direction

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Django Quizzes