У меня есть следующий класс модели:
class Ticket(BaseModel):
event = ForeignKeyField(Event)
category = ForeignKeyField(Category)
order_number = IntegerField()
tier_name = CharField()
num_available = IntegerField()
price = DecimalField()
Как видите, таблица имеет несколько внешних ключей. Я хочу иметь возможность затем выбирать все билеты и перебирать их и получать доступ как к категории, так и к событию:
tickets = Ticket.select()
for ticket in tickets:
print ticket.category.id
print ticket.event.id
Однако я не хочу, чтобы новые запросы запускались во время каждой итерации для категории и события. Я знаю, что если бы я просто обращался к событию, я мог бы сделать что-то вроде:
tickets = Ticket.select(Ticket, Event).join(Event)
Однако каждый раз, когда я обращаюсь к категории, будет запускаться новый запрос. Этот код дает мне исключение:
tickets = Ticket.select(Ticket, Category, Event).join(Event).join(Category)
Ошибка, которую я получаю: ValueError: Нет внешнего ключа между классом «models.ticketing.Category» и классом «models.event.Event»