簡體   English   中英

如何在Peewee ORM中選擇和限制related_name連接?

[英]How to select and limit the related_name connection in the Peewee ORM?

我將Flask與Peewee ORM結合使用,在其中定義了兩個表,如下所示:

class Ticket(db.Model):
    created = DateTimeField(default=datetime.now)
    customer_uuid = CharField() # the customer's UUID gotten from App. More info comes from bunq API.
    ticket_type = ForeignKeyField(TicketType, related_name='tickets')
    active = BooleanField(default=True)

class Assign(db.Model):
    created = DateTimeField(default=datetime.now)
    ticket = ForeignKeyField(Ticket, related_name='assigned_to')
    user = ForeignKeyField(User, related_name='assigned_tickets')

在“分配”表中,可以將多個用戶分配給故障單,但是只有最后一個計數(即,如果分配了新用戶,則應該忽略先前的用戶)。 因此,我使用以下方法選擇活動票證:

open_tickets = Ticket.select().where(Ticket.active == True)

現在,我想在模板中使用此循環。 但是,在每次迭代中,我還想顯示分配的用戶。 但是open_ticket[0].assigned_to很明顯會返回幾個分配,並帶有幾個用戶。

有人知道如何在循環中為每個票證獲取最新分配的用戶嗎?

這在Sqlite中對我有用:

q = (Ticket
     .select(Ticket, Assign, User)
     .join(Assign)
     .join(User)
     .group_by(Ticket)
     .order_by(Ticket.id, Assign.id.desc()))

for ticket in q:
    print ticket.id, ticket.assign.user.username

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM