在Django查询中使用外键选择子对象

2024-10-03 23:24:12 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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)

我想选择机器中的所有字段,并从我的resultset中的AssignedUsers发送用户电子邮件。 填充这个查询集最合适的方法是什么。以便它可以帮助我查询结果集,如下所示。在

^{pr2}$

Tags: name模型idmodelmodelstypemachinelength
1条回答
网友
1楼 · 发布于 2024-10-03 23:24:12

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

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

相关问题 更多 >