Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按小写相反顺序排序QuerySet_Python_Django_Django Views_Django Queryset - Fatal编程技术网

Python 按小写相反顺序排序QuerySet

Python 按小写相反顺序排序QuerySet,python,django,django-views,django-queryset,Python,Django,Django Views,Django Queryset,以下函数是在views.py中为我的django项目定义的。我唯一的问题是所有的书都是按小写顺序(即Lower())和相反顺序(即“-title”而不是“title”)排序的。我可以点一个或另一个,但不能同时点两个 我得到以下错误: 无法将关键字“-title”解析为字段。选择包括:作者、修改日期、标题 def book_list_title(request): all_entries = Book.objects.all().order_by(Lower('-title'))

以下函数是在views.py中为我的django项目定义的。我唯一的问题是所有的书都是按小写顺序(即Lower())和相反顺序(即“-title”而不是“title”)排序的。我可以点一个或另一个,但不能同时点两个

我得到以下错误:

无法将关键字“-title”解析为字段。选择包括:作者、修改日期、标题

def book_list_title(request):

    all_entries = Book.objects.all().order_by(Lower('-title'))
    books_list=[]

    //Do stuff to create a proper list of books

    return render(request,'books_app/books_list.html', {'books_list':books_list})

尝试使用
查询表达式

from django.db.models import Func, F

Book.objects.all().annotate(title_lower=Func(F('title'), function='LOWER')).order_by('-title_lower')

尝试使用
查询表达式

from django.db.models import Func, F

Book.objects.all().annotate(title_lower=Func(F('title'), function='LOWER')).order_by('-title_lower')
通过查看,您应该能够在
Lower()
上使用
desc()

通过查看,您应该能够在
Lower()
上使用
desc()


这是最好的答案