如何在django中获得枚举域的计数

bvuwiixz  于 2023-03-09  发布在  Go
关注(0)|答案(1)|浏览(168)

我有一个枚举类型的字段:

class Menu(models.Model):
    class placeMenu(models.TextChoices):
        navar_menu_1="MN1", ("چایگاه هدر اول")
        navar_menu_2="MN2", ("جایگاه هدر دوم")
        navar_menu_3="MN3", ("جایگاه هدر سوم")
        footer_menu_1="FN1", ("جایگاه فوتر اول")
        footer_menu_2="FN2", ("جایگاه فوتر دوم")
        social = "SC1", ("شبکه های اجتماعی")
    title=models.CharField(max_length=50)
    url=models.URLField(max_length=50)
    sort=models.IntegerField()
    is_active=models.BooleanField(default=1)
    icon_name=models.CharField(max_length=50,blank=False,null=True)
    icon_color=models.CharField(max_length=50,blank=False,null=True)
    place_menu=models.CharField(max_length=50,choices=placeMenu.choices)
    def __str__(self):
        return self.title

我怎样才能得到有值枚举的计数项?我的枚举字段有四个值。我想最优地得到每个值的计数。

dced5bon

dced5bon1#

因此,要使用Django ORM创建Group By聚合,您可以执行以下操作:

**案例:**您希望根据place_menu各自的选择对其进行计数,并查看每个选项的使用次数

为此,您可以执行以下操作:

get_places = Menu.objects.all().values('place_menu').annotate(value_count=Count('place_menu')).values('place_menu', 'value_count').order_by()

您应该会得到所需的结果,在那里可以看到每个值的计数。

相关问题