2012-04-26 13 views

Odpowiedz

5

Zastosowanie pośredniego tabeli bezpośrednio, a nie jego QuerySet.

friends = [pf.to_person for pf in 
    person.friends.through.objects.filter(from_person=person) 
    .select_related('to_person') 
    .order_by('pk')] 

Lub musisz napisać surowy SQL w części zamawiania.

person.friends.order_by(person.friends.through._meta.db_table+'.id') 
0

friends = person.friends.order_by('pk')

In [20]: [f.pk for f in p.friends.order_by('-pk')] 
Out[20]: [3, 2] 

In [21]: p.pk 
Out[21]: 1 

In [22]: [f.pk for f in p.friends.order_by('pk')] 
Out[22]: [2, 3] 
+0

Kiedy próbowałem To To rozkazy według id osoby, nie znajomych id – kamel

+0

Zobacz zaktualizowaną odpowiedź z przykładem. –

+0

Nadal nie jest zamawiany przez identyfikator pośredniej tabeli – hoju

Powiązane problemy