Documentation says order_by() returns a new QuerySet. When I print Question.objects.order_by('-pub_date') where Question is class name in models.py it prints queryset object. I am confused whether order_by() returns a new Queryset or executes a query? What is happening internally during execution in Django in below code? from django.http import HttpResponse from .models import Question def index(request): latest_question_list = Question.objects.order_by('-pub_date')[:5] output = ', '.join([q.question_text for q in latest_question_list]) return HttpResponse(output) Also please explain line 5 in above code? Continue reading...