python多个表拼接_Python peewee连接多个表

在使用Peewee ORM框架时,遇到如何联接并拼接多个表的问题。涉及的表格包括TicketCategory、Ticket、TicketBooking和Event。通过建立模型之间的外键关系,尝试进行查询,但在尝试联接TicketBooking、Ticket、TicketCategory和Event时,由于Event不是TicketCategory的直接外键,导致查询失败。寻求解决方案以实现一次查询获取所有相关信息,避免额外的数据库查询。
摘要由CSDN通过智能技术生成

我想在peewee中加入多个表。不过,这个场景对我来说有点难弄清楚如何让它与peewee一起工作。

我有以下表格:

门票

TicketCategory类别

售票

事件

以下是我的模特:class TicketCategory(BaseModel):

venue_id = IntegerField()

name = CharField()

description = CharField()

class Ticket(BaseModel):

event = ForeignKeyField(Event)

category = ForeignKeyField(TicketCategory)

order_number = IntegerField()

tier_name = CharField()

num_available = IntegerField()

price = DecimalField()

class TicketBooking(BaseModel):

user_id = IntegerField()

ticket = ForeignKeyField(Ticket, related_name="ticketbookings")

price_paid = DecimalField()

created = DateTimeField()

deleted = DateTimeField()

class Event(BaseModel):

venue_id = IntegerField()

date = DateField()

event_image_url = CharField()

start = TimeField()

end = TimeField()

现在我想运行一个查询,它将选择给定用户的所有ticketbookings。运行我的加入后,我希望加载所有信息——我不希望在访问ticketbooking.ticket.category.name或ticketbooking.ticket.event.description时启动另一个查询

我不能这么做:return TicketBooking.select(TicketBooking, Ticket, TicketCategory, Event).join(Ticket).join(TicketCategory).join(Event).where(

TicketBooking.user_id == user_id,

TicketBooking.deleted >> None

)

因为事件不是TicketCategory上的外键,所以我得到一个错误。任何帮助都将不胜感激。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值