我想以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')
Run Code Online (Sandbox Code Playgroud)
我也搜索了一个group_by选项,但我在 Django ORM 中没有找到任何东西
sho*_*ner 17
您可以添加-到您的 order_by查询以降序排序,如下所示:
my_query_set = Menù.objects.all().order_by('-my_boolean_field') # first get True ones then get False ones
Run Code Online (Sandbox Code Playgroud)
另一种方法是添加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 ',)
Run Code Online (Sandbox Code Playgroud)
在此更改后,您的查询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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5006 次 |
| 最近记录: |