'This method copies this extension to an unrelated-target. If you intend
to "publish" this extension to the publisher counterpart of target, then
use copy_to_publish() instead.'

def copy(self, target, language):

    clone = self.__class__.objects.get(pk=self.pk)
    clone.pk = None
    clone.public_extension = None
    clone.extended_object = target
    for (parent, field) in clone._meta.parents.items():
        if field:
            setattr(clone, parent._meta.pk.attname, None)
    clone.save(mark_page=False)
    target_prime = getattr(target, 'publisher_public')
    if target_prime:
        related_name = self.__class__.__name__.lower()
        clone_prime = getattr(target_prime, related_name)
        if clone_prime:
            clone.public_extension = clone_prime
        else:
            clone.public_extension = None
    clone.copy_relations(self, language)
    clone.save(force_update=True, mark_page=False)
    return clone
