【问题标题】:Pass queryset data to another query django将查询集数据传递给另一个查询 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)

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

【问题讨论】:

    标签: python django django-models models


    【解决方案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()
    猜你喜欢
    • 2014-08-31
    • 1970-01-01
    • 2017-11-25
    • 2017-07-09
    • 2015-03-04
    • 2015-04-20
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    相关资源
    最近更新 更多