Domyślne zamawianie elementów m2m według pośredniego pola modelu w Django

Mam niezwykły problem. Rozważmy takie modele (zaczerpnięte z dokumentów django):

class Person(models.Model):
    name = models.CharField(max_length=128)

    def __unicode__(self):
        return self.name

class Group(models.Model):
    name = models.CharField(max_length=128)
    members = models.ManyToManyField(Person, through='Membership')

    def __unicode__(self):
        return self.name

class Membership(models.Model):
    person = models.ForeignKey(Person)
    group = models.ForeignKey(Group)
    date_joined = models.DateField()
    invite_reason = models.CharField(max_length=64)

Powiedzmy, że mamy dwóch członków Beatlesów w zespole Beatlesów (zgodnie z przykładem w dokumentach django dla modeli pośrednich):

>>> beatles.members.all()
[<Person: Ringo Starr>, <Person: Paul McCartney>]

Powyższy kod zwróci członków posortowanych wedługdomyślne zamawianie dla modelu Person. Jeśli określę:

>>> beatles.members.all().order_by('membership__date_joined') 

członkowie są sortowani według daty dołączenia. Czy mogę jakoś ustawić to jako domyślne zachowanie dla tego pola ManyToMany? Czyli ustawić domyślną kolejność powiązanych elementów według pola w modelu pośrednim? Wygląda na to, że ManyRelatedManager ma argument init_filters, ale nie mam pojęcia, jak uzyskać do niego dostęp, podklasując całe pole m2m w django. Jakieś kreatywne pomysły? :)

Z góry dziękuję :)

Otworzyłem abilet w django trac.

questionAnswers(2)

yourAnswerToTheQuestion