2024-10-02 12:37:44 发布
网友
我有一个
Model Car(self.Models) # a bunch of features here
然后在我的视图.py,我得到了所有的车并计算了一个分数:
然后在我的模板中遍历allCars以显示它们;使用与我一起返回的查询的顺序,得到主键排序,因此
但是,我想知道是否有一种方法可以使用我在视图中计算的列表来排序queryset,这将产生
所以做一些类似的事情
allCars.order_by(scoreList)
首先,为了回答您的问题,您不能使用ORM/sql对从具有复杂逻辑的记录中派生的内容进行排序,除非它只是纯数学,数据库在某种程度上可以做到这一点。在
下一个选择是使用python内置的排序。但是,你不能用一个函数来排序,这个函数是“全部接受”和“吐出所有”,这意味着你当前的函数正在获取一个完整的列表和计算出的分数,并返回所有的分数,因为你不知道什么分数对应于哪辆车。在
我将使用模型上的一个函数来计算分数,然后相应地对记录进行排序:
class Car(models.Model): @property def compute_score(self): return a_score_based_on_current_car cars = Car.objects.all() cars = sorted(cars, key=lambda car: car.compute_score)
首先,为了回答您的问题,您不能使用ORM/sql对从具有复杂逻辑的记录中派生的内容进行排序,除非它只是纯数学,数据库在某种程度上可以做到这一点。在
下一个选择是使用python内置的排序。但是,你不能用一个函数来排序,这个函数是“全部接受”和“吐出所有”,这意味着你当前的函数正在获取一个完整的列表和计算出的分数,并返回所有的分数,因为你不知道什么分数对应于哪辆车。在
我将使用模型上的一个函数来计算分数,然后相应地对记录进行排序:
相关问题 更多 >
编程相关推荐