[英]Python peewee foreign keys
如果我有下表:
class Ticket(BaseModel):
event = ForeignKeyField(Event)
category = ForeignKeyField(TicketCategory)
order_number = IntegerField()
tier_name = CharField()
num_available = IntegerField()
price = DecimalField()
然后我執行以下代碼:
tickets = Ticket.select()
for ticket in tickets:
print ticket.event.id
訪問外來對象的主鍵是否強制peewee啟動另一個查詢? 或者peewee足夠聰明,知道id已經可用了嗎?
它執行另一個查詢。 為了避免這種情況
Ticket.select(Ticket, Event).join(Event)
這是幾年之后,但對於偶然發現這個頁面的其他人來說,這些天你可以使用Django使用的相同語法:<< field_name >> _ id來訪問id。 在這種情況下,ticket.event_id。
根據文檔 :
有時,您只需要來自外鍵列的關聯主鍵值。 在這種情況下,Peewee遵循Django建立的約定,允許您通過將“_id”附加到外鍵字段的名稱來訪問原始外鍵值:
但是,值得注意的是,這僅在訪問查詢對象的值時才有效。 換句話說,如果您想更改事件ID,只需設置即可
ticket.event = new_event_id
而不是嘗試設置ticket.event_id。
嘗試基於外鍵選擇時也是如此:
Ticket.select()。where(event == desired_event_id)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.