用 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)
我有 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)