如何使用mongoengine在booleanfield上使用order_by

时间:2019-07-02 20:34:16

标签: python mongoengine

我想在两个不同的字段上排序mongoengine调用的结果。

  1. 打开。状态为True或False。我想要这个,因为我想要 首先显示未解决的问题
  2. 开放日期。因为我想将最新的问题放在最前面。

结合起来,这应该会创建一个列表,在这里我可以在顶部看到未解决的问题(按创建日期排序),而不是已经关闭的问题(也按creationdate排序)。

我开始使用的代码是:

调用API:

questions = Questions.questions_of_user

处理呼叫:

@queryset_manager
def questions_of_user(doc_cls, queryset):
    return queryset.filter(questioner=current_user.id).order_by('-openDate')

我的第一个建议是仅将“状态”添加到order_by(可能带有+或不带有+或-)即可。但是到目前为止没有运气。

比起尝试只按开放字段排序,因为我认为结合这两者只是在犯错误。所以我得到了:

@queryset_manager
def questions_of_user(doc_cls, queryset):
    return queryset.filter(questioner=current_user.id).order_by('-open')

但是,效果不佳。我希望有人能帮助我。预先感谢

1 个答案:

答案 0 :(得分:1)

可以在查询集的order_by方法中传递

More than one key

queryset.filter(questioner=current_user.id).order_by('-open', '-openDate')