【问题标题】:Make filters of an object list制作对象列表的过滤器
【发布时间】:2011-10-21 11:25:07
【问题描述】:

我从我的数据库中得到一个带有属性的对象列表。所以我想根据我的列表结果在左侧制作动态过滤器。

例如,如果我在“Paris”和“New York”上有一个广告,我想在左侧看到 Paris(1),New york (1)。当你点击它时,你只会看到巴黎的广告或纽约的广告。

最好的方法是什么?

谢谢!

【问题讨论】:

    标签: python django filter tags


    【解决方案1】:

    你可以使用聚合 https://docs.djangoproject.com/en/dev/topics/db/aggregation/#generating-aggregates-for-each-item-in-a-queryset

    示例:

    cities = City.objects.annotate(ads_count=Count("adevertissement"))
    

    【讨论】:

    • 感谢您的回答,但我不理解文档。对我来说,每个广告都有一个 city_name (字符串),我怎样才能通过聚合所有不同的 city_name 来获得计数?类似于:{{'paris': 10},{'new york': 12}}
    【解决方案2】:
    from django.db.models import Q
    Advertisement.objects.filter( Q(name = 'Paris') | Q(name = 'New York') )
    

    您需要使用filtersQ objects

    【讨论】:

      猜你喜欢
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 2021-12-20
      • 2022-01-12
      • 2015-03-24
      • 2011-01-10
      相关资源
      最近更新 更多