'Return all the ancestors of this model as a list ordered by MRO.
Useful for determining if something is an ancestor, regardless of lineage.'

def get_parent_list(self):

    result = OrderedSet(self.parents)
    for parent in self.parents:
        for ancestor in parent._meta.get_parent_list():
            result.add(ancestor)
    return list(result)
