diff --git a/modelcluster/models.py b/modelcluster/models.py index bb586a9..157a26a 100644 --- a/modelcluster/models.py +++ b/modelcluster/models.py @@ -316,7 +316,11 @@ def copy_child_relation(self, child_relation, target, commit=False, append=False for child_object in source_manager.all().order_by('pk'): old_pk = child_object.pk is_saved = old_pk is not None + if isinstance(child_object, ClusterableModel): + child_object, _ = child_object.copy_cluster() child_object.pk = None + child_object.id = None + child_object._state.adding = True setattr(child_object, parental_key_name, target.id) target_manager.add(child_object)