【问题标题】:Select children objects using foreign key in django query在 django 查询中使用外键选择子对象
【发布时间】:2015-03-05 03:37:46
【问题描述】:

我有两个模型,我需要在一个查询中从两个模型中选择字段。

class Machines(model.Model):
    name = models.CharField(max_length=100)
    state = models.CharField(max_length=20)
    type = models.CharField(max_length=20)

class AssignedUsers(model.Model):
    machine_id = models.ForeignKey(Machines, null=True)
    user_email = models.CharField(max_length=100)

我想从我的结果集中的 AssignedUsers 中选择 Machines 和 user_email 中的所有字段。 填充此查询集的最合适方法是什么。以便它可以帮助我按如下方式查询结果集。

q = Q()
q = Q(name__icontains=searchword) | Q(user_email__icontains=searchword)
filtered_list = result_set.filter(q)

【问题讨论】:

标签: python mysql django foreign-key-relationship


【解决方案1】:

注意distinct() 方法。 Machines 可以包含多个匹配的AssignedUsers,因此distinct() 将从查询集中删除重复项。

machines = Machines.objects \
                   .distinct() \
                   .filter(Q(name__icontains=searchword) |
                           Q(assignedusers__user_email__icontains=searchword))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    相关资源
    最近更新 更多