背景:
我想知道如何根据首先匹配请求的项目,然后默认为所有不匹配项目的原始排序方案来实现 Django 查询集的一些高级排序。
可以说我有以下内容:
possibleLanguages = ["English", "Spanish", "Armenian", "French", "Chinese", "Swahili"]
requestedLanguage = "Armenian"
class Book(models.Model):
name = models.CharField(max_length=50)
author = models.CharField(max_length=50)
languages_available = models.CharField(max_length=1000) #Comma Separated List of languages
#Pseudocode Query
queryset = Book.objects.all().order_by(sortByRequestLanguage(requestedLanguage),
sortByTotalNumLanguagesAvailable(),
sortByAllPossibleLanguages()
)
问题:
如何通过以下方式对生成的 Book 查询集进行
排序: 1. 根据是否与指定语言匹配对所有对象进行
排序 2. 按可用语言的总数对 (1) 的
所有排序对象进行排序 3. 按全部对 (2) 的所有排序对象进行排序possibleLanguages 中的其他语言