代码之家  ›  专栏  ›  技术社区  ›  lmiguelvargasf

如何查询组并根据用户数按降序排序?

  •  1
  • lmiguelvargasf  · 技术社区  · 6 年前

    我需要使用满足以下条件的ORM创建查询:

    • 排除当前用户所属的组
    • 按用户数降序排列组

    到目前为止,我尝试的是:

    groups = (
        Group.objects.exclude(
            id__in=request.user.groups.all().values_list("id", flat=True)
        )
        .annotate(users=Count("user_set"))
        .order_by("-users")
    )
    

    这正确地排除了当前用户所属的组,但我不太清楚如何实现排序。

    我收到以下错误:

    无法将关键字“user\u set”解析为字段。

    1 回复  |  直到 6 年前
        1
  •  1
  •   neverwalkaloner    6 年前

    用户的 groups 字段已 related_query_name 设置为 user . 所以试试这个:

    Group.objects.exclude(
        id__in=request.user.groups.all().values_list("id", flat=True)
    )
    .annotate(users=Count("user"))
    .order_by("-users")