将查询集数据传递给另一个查询 django

Posted

技术标签:

【中文标题】将查询集数据传递给另一个查询 django【英文标题】:Pass queryset data to another query django 【发布时间】:2017-07-14 18:19:58 【问题描述】:

我有以下型号。我正在尝试从指定了特定 class_id 的 UserClasses 中选择所有内容。然后我想获取每个结果的用户数据

class UserClasses(models.Model):
    class_id = models.ForeignKey(Class)
    user = models.ForeignKey(User)

这是我试图提取所有用户对象的 django 视图:

users = UserClasses.objects.filter(class_id=data['class_id'])
user_details = User.objects.filter(#get users.id from userclasses and compare here)

如何将结果从一个查询集传递到另一个?

【问题讨论】:

【参考方案1】:

你可以使用__in操作符结合Django的values_list()方法来实现你想要的。

users = UserClasses.objects.filter(class_id=data['class_id'])
user_details = User.objects.filter(id__in=users.values_list('id', flat=True))

【讨论】:

甜蜜!我只是尝试过,它只返回 1 个用户。第一个查询返回了多个用户。 想通了。我需要将“user_id”传递给 values_list()

以上是关于将查询集数据传递给另一个查询 django的主要内容,如果未能解决你的问题,请参考以下文章

Django 将请求数据传递给 Forms.py

pentaho - 将数据传递给报表查询

使用“let”关键字将数据传递给组件

使用 Bundle 将数组数据传递给 listview click 上的另一个活动

是否可以将数据传递给 Oracle 触发器?

将数据传递给另一个 Java 类 Android Studio