gpt4 book ai didi

Django: "order"基于 bool 字段的查询集

转载 作者:行者123 更新时间:2023-12-02 04:31:18 24 4
gpt4 key购买 nike

我想以这种方式获取所有 Menù 实例:

-将 my_boolean_field 设置为 True 的实例位于顶部位置

-在最后位置将 my_boolean_field 设置为 False 的实例

这是我的 Menù 模型和我的查询:

class Menù(models.Model):
id_menù = models.AutoField(primary_key=True)
name = models.CharField(max_length=100, unique=True)
my_boolean_field = models.BooleanField(default=False)

# In my View:
my_query_set = Menù.objects.all().order_by('my_boolean_field')

我还搜索了 group_by 选项,但在 Django ORM 中没有找到任何内容

最佳答案

您可以将 - 添加到 order_by 查询中以降序排序,如下所示:

my_query_set = Menù.objects.all().order_by('-my_boolean_field')  # first get True ones then get False ones

另一种方法是将 ordering 添加到模型 Meta 类中,如下所示:

class Menù(models.Model):
id_menù = models.AutoField(primary_key=True)
name = models.CharField(max_length=100, unique=True)
my_boolean_field = models.BooleanField(default=False)

class Meta:
ordering = ('-my_boolean_field ',)

此更改后,您对 my_boolean_field 的查询将默认按降序排序,无需使用 order_by('-my_boolean_field'):

my_query_set = Menù.objects.all()  # results will be sorted by my_boolean_field in reverse order

关于Django: "order"基于 bool 字段的查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55364691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com