[英]peewee python multiple foreign keys on table
I have the following model class: 我有以下模型类:
class Ticket(BaseModel):
event = ForeignKeyField(Event)
category = ForeignKeyField(Category)
order_number = IntegerField()
tier_name = CharField()
num_available = IntegerField()
price = DecimalField()
As you can see, the table has multiple foreign keys. 如您所见,该表具有多个外键。 I want to be able to then select all tickets and iterate over them and access both the category and event: 然后,我希望能够选择所有票证并对其进行遍历并访问类别和事件:
tickets = Ticket.select()
for ticket in tickets:
print ticket.category.id
print ticket.event.id
However, I don't want new queries to be launched during each iteration for the category and the event. 但是,我不希望在每次迭代中针对类别和事件启动新查询。 I know that if I were just accessing the event I could do something like: 我知道,如果我只是参加活动,我可以做类似的事情:
tickets = Ticket.select(Ticket, Event).join(Event)
However, a new query will still be launched every time I access the category. 但是,每次我访问类别时,仍然会启动一个新查询。 This code gives me an exception: 这段代码给了我一个例外:
tickets = Ticket.select(Ticket, Category, Event).join(Event).join(Category)
The error I get is: ValueError: No foreign key between class 'models.ticketing.Category' and class 'models.event.Event' 我得到的错误是:ValueError:类'models.ticketing.Category'和类'models.event.Event'之间没有外键
对于最后一个错误:您正在尝试将Category
加入Event
,则需要切换回Ticket
:
tickets = Ticket.select(Ticket, Category, Event).join(Event).switch(Ticket).join(Category)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.