2013-02-09 4 views
0

я сделать такую ​​вещь:модели Джанго фильтр заказа

Player.objects.distinct().filter(Q(game1_set=game) | Q(game2_set=game)) 

Это возвращает все игроки, которые играли game. Я хочу, чтобы результат был orderd, как в фильтре: game1_set сначала, а затем game2_set. Но это не так. Это orderd by 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 

ответ

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') 
+0

Он заказывает игроков, но это не делает то, что я whant делать. Спасибо, в любом случае – imkost

Смежные вопросы