下面的函数是在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')