объединить результаты двух запросов друг с другом с помощью Django - PullRequest
0 голосов
/ 19 июня 2020

У меня есть 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)

Что мне нужно сделать, так это отобразить в таблице всех участников мероприятия но свяжите заказ с участником, чтобы я мог отображать статус isPaid для каждого участника.

Я думаю, это похоже на соединение SQL.

Итак, я попробовал что-то вроде:

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

, но когда я пытаюсь получить к нему доступ, например,

participants.cusomerOrder 

я получаю: объект 'QuerySet' не имеет атрибута 'customerOrder'

так что я что-то неправильно понял.

Спасибо

1 Ответ

1 голос
/ 19 июня 2020

participants - это EventParticipant QuerySet , который является итерацией , поэтому вам нужно перебрать его

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