Django-获取相关集中的对象数

时间:2019-02-19 12:25:30

标签: python django postgresql django-orm

有两种型号:

first_num = [x for x in range(1000)]
second_num = 100
palindrome_list = []

def check_palindrome(result):
    result = str(result)
    if result[0:3] == result[6:2:-1]:
        palindrome_list.append(result)

def multiply_list_loop(x, y):
    for num in x:
        z = num * y
        check_palindrome(z)


while second_num < 1000:
    multiply_list_loop(first_num, second_num)
    second_num += 1

print max(palindrome_list)

我正在寻找一种方法来获取任何related_set class Article(..: locations = ManyToMany('Location'...,related_name='articles') class Location(...): ...

中的位置信息

例如:

  1. 第1条-米兰,维也纳,巴黎
  2. 第2条-米兰,巴黎
  3. 第3条-巴黎
  4. 文章-迪拜

结果将是:

巴黎-3,米兰-2,维也纳-1,迪拜-1

我以此结束:

Article.locations

是否可以在一两个Location.objects.all().annotate(Count(?)) 中完成?我想避免使用循环。

此外,我只考虑Queries(已过滤查询集)的子集来完成此操作。

1 个答案:

答案 0 :(得分:2)

尝试

Location.objects.all().annotate(
    locations_count=Count('locations')
  )

和在模板中

{{obj.locations_count}}

ax = Location.objects.all().count()
 {{ax}}

希望有帮助