Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在字典中按值对模型排序?_Python_Django_Sorting_Sql Order By - Fatal编程技术网

Python 如何在字典中按值对模型排序?

Python 如何在字典中按值对模型排序?,python,django,sorting,sql-order-by,Python,Django,Sorting,Sql Order By,在Django中,我有一个模型,我将有一个字典,其中对象的id作为键,权重作为值。我希望通过以下方式使用这些权重: MyModel.objects.filter(title__icontains=query).order_by( 'value_from_the_dictionary' ) 如何做到这一点 我无法将权重放入模型中,因为在此视图的每次调用中权重都会不同,而且我不想将它们保存在任何地方,它们将在URL的每次查询中计算。按排序是由数据库完成的,因此如果这些元素不在数据库中,则不能按它们

在Django中,我有一个模型,我将有一个字典,其中对象的id作为键,权重作为值。我希望通过以下方式使用这些权重:

MyModel.objects.filter(title__icontains=query).order_by( 'value_from_the_dictionary' )
如何做到这一点


我无法将权重放入模型中,因为在此视图的每次调用中权重都会不同,而且我不想将它们保存在任何地方,它们将在URL的每次查询中计算。

排序是由数据库完成的,因此如果这些元素不在数据库中,则不能按它们排序。您必须获得queryset,然后用Python进行排序

qs = MyModel.objects.filter(title__icontains=query)
qs.sort(key=lambda x: mydict[x])

排序是由数据库完成的,因此如果这些元素不在数据库中,就不能按它们排序。您必须获得queryset,然后用Python进行排序

qs = MyModel.objects.filter(title__icontains=query)
qs.sort(key=lambda x: mydict[x])