我做了这样的事情:
Player.objects.distinct().filter(Q(game1_set=game) | Q(game2_set=game))
返回播放game
的所有玩家。我想要对结果进行排序,例如首先在过滤器中game1_set
,然后是game2_set
。但事实并非如此。它由id
订购。
另外,我需要一个QuerySet
结果,因此,合并两个列表不是一个选项。
以下是models.py
以便更好地理解:
class Player(models.Model):
game1_set = models.ManyToManyField('Game', verbose_name='players1')
game2_set = models.ManyToManyField('Game', verbose_name='players2')
class Game(models.Model):
# some fields here
答案 0 :(得分:2)
尝试添加.order_by('game1_set','game2_set')
Player.objects.distinct().filter(Q(game1_set=game) | Q(game2_set=game)).order_by('game1_set','game2_set')