gpt4 book ai didi

python - 在django查询中使用外键选择子对象

转载 作者:行者123 更新时间:2023-11-29 23:15:52 25 4
gpt4 key购买 nike

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

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)

我想选择结果集中的“机器”中的所有字段以及“已分配用户”中的“user_email”。填充此查询集的最合适方法是什么?这样它可以帮助我查询结果集,如下所示。

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

最佳答案

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

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

关于python - 在django查询中使用外键选择子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27816129/

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