'Has this model been swapped out for another? If so, return the model
name of the replacement; otherwise, return None.
For historical reasons, model name lookups using get_model() are
case insensitive, so we make sure we are case insensitive here.'

def _swapped(self):

    if self.swappable:
        model_label = (u'%s.%s' % (self.app_label, self.model_name))
        swapped_for = getattr(settings, self.swappable, None)
        if swapped_for:
            try:
                (swapped_label, swapped_object) = swapped_for.split(u'.')
            except ValueError:
                return swapped_for
            if ((u'%s.%s' % (swapped_label, swapped_object.lower())) not in (None, model_label)):
                return swapped_for
    return None
