Python 如何定制Django queryset?

Python 如何定制Django queryset?,python,django,Python,Django,关于我们具体问题的一点背景知识-> 我们正在尝试建立一个问答网站,就像Stackoverflow一样。 人们可以来问问题,其他人回答 我们有一个问题页面。现在我们面临的问题是,我们有这个模型: class Questions(models.Models): user = person question = CharField number_of_replies = IntegerField datetime = DateTime 结果查询集(或列

关于我们具体问题的一点背景知识->

我们正在尝试建立一个问答网站,就像Stackoverflow一样。
人们可以来问问题,其他人回答

我们有一个问题页面。现在我们面临的问题是,我们有这个模型:

class Questions(models.Models):   
    user = person
    question = CharField   
    number_of_replies = IntegerField  
    datetime = DateTime
结果查询集(或列表)是由各种因素的组合决定的,如发布时间、回复人数等

由于与该问题相关的混乱,我将澄清它-> 这就是我想要的输出:

这就是最终订单的方式->

  • 问题c在10分钟前发布,0个回复
  • 问题f在1分钟前发布,2次回复
  • 问题b在5分钟前发布,1回复 等等
    所以没有一维的顺序,顺序是各种参数的函数

  • 每个required子句都代表一个queryset

    在最后“X”分钟内未回答和发布的问题:

    同样地

    似乎要显示几个查询集的组合。您可以使用
    itertools.chain
    方法组合并显示模板中几个查询集的结果,如:

    combined_queryset = chain(recent_questions,unanswered_questions,...)
    

    但是请记住,如果这些查询集上存在重叠条件,则某些问题可能会重复。您可以通过在下一个查询集中显式转换一个查询集的结果来避免这种情况,也可以将查询集转换为列表,并让
    set.union
    类型处理可能的重复项。

    一种方法是定义自定义管理器->


    可以按任意顺序显示对象。您甚至可以使用自定义管理器方法返回列表和自定义词典。

    什么是“优先级顺序”?你想要一个组合查询还是每个案例一个查询?我想找一个组合查询,但是我不确定我要找的是什么,现在我觉得也许列表是一个更好的方法,从你给出的示例顺序来看,我认为您的问题在于应用程序的设计,而不是实现。为什么回答较少的较老问题在列表中排名较高(问题f之前的问题c),而在同一列表中回答较少的较老问题排名较低(问题b在问题f下方)?查看您链接到的SO问题页面:按发布时间和回复数量排列的问题实际上在两个不同的列表上(最新和最活跃)。嘿,感谢您的回复,我知道您想做什么,但这并没有击中要害(如果您知道我的意思的话)。我已编辑了问题,请查看
    combined_queryset = chain(recent_questions,unanswered_questions,...)