﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
30460	ManyToMany relationships with a custom `through` do not respect Meta.ordering on the intermediary model	Ryan Petrello	nobody	"`ManyToManyField`s that specify an intermediary model with a custom `Meta.ordering` do not inherit that ordering.

{{{#!python
class Dog(models.Model):
    pass


class OrderedMembership(models.Model):

    class Meta:
        ordering = ('position',)

    dog = models.ForeignKey('Dog', models.CASCADE)
    winner = models.ForeignKey('Winner', models.CASCADE)
    position = models.PositiveIntegerField()


class Winner(models.Model):
    name = models.CharField(max_length=128)
    # OrderedMembership object defined as a class
    members = models.ManyToManyField(Dog, through=OrderedMembership)

lassie = Dog('Lassie')
fido = Dog('Fido')
rover = Dog('Rover')
dog_show = Winner(name='Dog Show')
OrderedMembership.objects.create(dog=lassie, winner=dog_show, position=3)
OrderedMembership.objects.create(dog=fido, winner=dog_show, position=2)
OrderedMembership.objects.create(dog=rover, winner=dog_show, position=1)

dog_show.members.all()   # <--- does not respect `OrderedMembership.position`


}}}

This means that if you want to create a custom M2M model that manages default order via some column on the M2M table:

https://github.com/ansible/awx/pull/3842/files#diff-ea6da88b8c0cd3fbf7858ae87933b296R995
https://github.com/gregmuellegger/django-sortedm2m/blob/b48481ebd1212f1af22a6a04d1c8372b5a837350/sortedm2m/fields.py#L41

...it doesn't work as you'd expect (the M2M relation falls back to natural database order - usually the primary key of the target model)."	New feature	new	Database layer (models, ORM)	dev	Normal			Ülgen Sarıkavak Dmytro Litvinov	Accepted	1	0	0	1	0	0
