gpt4 book ai didi

python - Django - 获取外键(相关)对象列表

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:55 26 4
gpt4 key购买 nike

有一个模型:

class Combination(models.Model):
changed_by = models.ForeignKey('users.User', on_delete=models.CASCADE, related_name='combinations')

我如何获得创建此类组合的所有用户的列表/查询集?

最佳答案

user_instance.combinations.all() 应该会为您提供相关用户的组合。


但是,如果您想选择所有已创建至少一个 Combination 实例的用户,那么您有一些选择:

  1. 只需使用 User.objects.filter(combination__isnull=False) 就像用户@PauloAlmeida 在这个答案的评论中指出的那样(我不知道这种方式,即使它就在那里在 docs 中,所以我今天也学到了一些新东西)。

  2. 您可以使用效率较低但更简单的 python 代码来遍历用户:

    user_list = []
    for u in User.objects.all():
    if u.combinations.exists():
    # add users that have at least one combination
    user_list.append(u)
  3. 您可以使用效率较低但更简单的 python 代码来迭代组合:

    user_set = set()
    for c in Combination.objects.filter(changed_by__isnull=False):
    # will have no effect if user is already present in user_set
    user_set.add(c.changed_by)

关于python - Django - 获取外键(相关)对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49880828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com