【问题标题】:How to sort model by values in a dictionary?如何按字典中的值对模型进行排序?
【发布时间】:2009-11-16 16:32:40
【问题描述】:

在 Django 中,我有一个模型,我将有一个字典,其中该模型中的对象的 id 作为键,权重作为值。我想在 order_by 中使用这些权重:

MyModel.objects.filter(title__icontains=query).order_by( 'value_from_the_dictionary' )

如何做到这一点?

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

【问题讨论】:

    标签: python django sorting sql-order-by


    【解决方案1】:

    order_by 中的排序是由数据库完成的,所以如果这些元素不在数据库中,您就不能按它们排序。您必须获取查询集,然后在 Python 中进行排序。

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

    【讨论】:

      猜你喜欢
      • 2010-10-11
      相关资源
      最近更新 更多