仅当给定值时才使用Django过滤器

2024-09-30 02:32:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想得到每个国家的网站数量。现在,如果没有给出国家,那么所有国家的网站数量应该是结果。我的查询如下所示:

Devices = GatewayDevice.objects.prefetch_related("model").filter(
            model__site__country=country, end_date=None
        )

在执行查询之前,我可以检查参数country是否为null,并给出它和其他值,如示例ALL(不起作用)。我该怎么办


Tags: none数量datemodelobjects网站site国家
1条回答
网友
1楼 · 发布于 2024-09-30 02:32:28

最简单的方法就是使用if语句:

if country is None:
    Devices = GatewayDevice.objects.prefetch_related("model").filter(end_date=None)
else:
    Devices = GatewayDevice.objects.prefetch_related("model").filter(
            model__site__country=country, end_date=None
        )

相关问题 更多 >

    热门问题