ordering QuerySet,小写倒序



下面的函数是在views.py中为我的django项目定义的。我遇到的唯一问题是按小写顺序(即Lower())和反向顺序(即"-title"而不是"title")订购所有的书。我可以按其中一种订货,但不能两种都订货。

我得到以下错误:

Cannot resolve keyword '-title' into field. Choices are: author, date_modified, 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})

根据order_by的文档,您应该能够在Lower()上使用desc():

all_entries = Book.objects.all().order_by(Lower('title').desc())

尝试使用Query Expressions

from django.db.models import Func, F
Book.objects.all().annotate(title_lower=Func(F('title'), function='LOWER')).order_by('-title_lower')

相关内容

  • 没有找到相关文章

最新更新