'Manager'对象不是可迭代错误

int*_*lis 1 python django django-queryset

我正在尝试做一个简单的查询,但我得到了 'Manager' object is not iterable error.

我的代码(相关部分):

def sort(request):
    sort_type = request.GET.get('srt', '')
    q = Question.objects
    if sort_type == 'views':
        q.order_by('-views')
    q.all()
    return render(request, 'questions/index.html',{
        'questions': q
    })
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Rod*_*ier 5

你的代码应该是

def sort(request):
    sort_type = request.GET.get('srt', '')
    q = Question.objects.all()
    if sort_type == 'views':
        q = q.order_by('-views')
    return render(request, 'questions/index.html',{
        'questions': q
    })
Run Code Online (Sandbox Code Playgroud)

您需要分配q.order_by('-views'),q以便更新您的查询集.