Python 按小写相反顺序排序QuerySet
以下函数是在views.py中为我的django项目定义的。我唯一的问题是所有的书都是按小写顺序(即Lower())和相反顺序(即“-title”而不是“title”)排序的。我可以点一个或另一个,但不能同时点两个 我得到以下错误: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'))
无法将关键字“-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()
:
这是最好的答案