Our toolhub.apps.lists.models.ToolList model uses a ManyToManyField with a through relation to store and retrieve the tools associated with a list. The through relation is handled by the toolhub.apps.lists.models.ToolListItem model which adds "order", "added_by", and "added_date" attributes to the M2M relation between a ToolList and a Tool.
The bug is that the "order" field on ToolListItem is not used by the DRF view layer when it outputs a list. Playing with manual Django object queries, it seems that if the toollistitem_set reverse manager is used to query for the tools in a list then the ToolListItem default ordering is used (what we want), but if the tools manager is used then ordering is left up to the db engine.