假设我有一个模型EventParticipant
,它存储了给定Event
的参与者数据。现在我想检索一个用户列表的 next 事件参与者。
以下内容:EventParticipance.objects.filter(user__in=userlist, start__gte=timezone.now()).order_by(start)
将为userlist
中所有用户给予将来开始的所有事件参与者。但是,我只需要每个用户的第一个事件参与者。
在Posterre中,这可以通过以下方式实现(我认为):EventParticipance.objects.filter(user__in=userlist, start__gte=timezone.now()).order_by(start).distinct('user')
的值。“
但是,这不适用于sqlite或mysql。
很明显,如here所示,这是可行的,但我认为它会非常慢:
next_occurrence_ids = []
for user in userlist:
id = EventParticipant.objects.filter(user=user, .....).order_by(start).values('id').first()
next_occurrence_ids.append(id)
return EventParticipant.objects.filter(id__in=next_occurrence_ids
字符串
我还能用什么别的策略吗?
1条答案
按热度按时间chhqkbe11#
你可以试试这样的:)
字符串