diff --git a/model_clone/mixin.py b/model_clone/mixin.py index b8868ca6..fd140961 100644 --- a/model_clone/mixin.py +++ b/model_clone/mixin.py @@ -718,6 +718,8 @@ def __duplicate_linked_m2m_fields(self, duplicate): :return: The duplicate instance objects from all the many-to-many fields duplicated. """ + changed = False + for field in self._meta.many_to_many: if all( [ @@ -729,5 +731,9 @@ def __duplicate_linked_m2m_fields(self, duplicate): source = getattr(self, field.attname) destination = getattr(duplicate, field.attname) destination.set(list(source.all())) + changed = True + + if changed: + duplicate.save() return duplicate