用 Django 加入两个查询的结果

join the results of two query on each others with Django

我有 2 个模型,我将它们简化为示例:

class CustomerOrder(models.Model):
    product = models.ForeignKey(Product, on_delete=models.PROTECT)
    isPaid = models.BooleanField(default=False)

class EventParticipant(models.Model):
    customerOrder = models.ForeignKey(CustomerOrder, on_delete=models.CASCADE)
    event = models.ForeignKey(Product, on_delete=models.CASCADE)

我需要做的是在 table 中显示活动的每个参与者,但 link 向参与者显示订单,以便我可以显示每个参与者的 isPaid 状态。

我认为它类似于 SQL 上的联接。

所以我尝试了类似的方法:

participants = EventParticipant.objects.filter(event=event_pk).select_related('customerOrder')

但是当我尝试像

那样访问它时
participants.cusomerOrder 

我得到:'QuerySet'对象没有属性'customerOrder'

所以我想是误会了什么。

谢谢

participants 是一个 EventParticipant QuerySet,它是一个 可迭代,所以你需要迭代它

for participant in participants:
    print(participant.customerOrder.isPaid)