这是我的查询集:
most_event_wins = UserEvent.objects.filter(position=1)\
.values('user', 'user__first_name', 'user__last_name').annotate(wins=Count('user'))\
.order_by('-wins', '(select max(created) as d from users_userevent as s '
'where s.user_id=users_userevent.user_id and position=1)')
我收到以下错误:
Invalid order_by arguments: ['(select max(created) as d from users_userevent as s where s.user_id=users_userevent.user_id and position=1)']
我可以在order_by中使用SELECT语句吗?如果不是这种情况的任何解决方案。
答案 0 :(得分:0)
不,您不能在order_by中使用select语句。您是否有理由不使用多个注释来实现此目的?
most_event_wins = UserEvent.objects.filter(position=1)\
.values('user', 'user__first_name', 'user__last_name')\
.annotate(wins=Count('user')).annotate(max_created=Max('created'))\
.order_by('-wins', 'max_created')