1

我将 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显然返回了几个分配,并与它几个用户。

有人知道我如何为循环中的每张票获取最新分配的用户吗?

4

1 回答 1

0

这在 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
于 2013-11-25T04:31:17.320 回答