diff options
Diffstat (limited to 'ishtar_common/model_merging.py')
-rw-r--r-- | ishtar_common/model_merging.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/ishtar_common/model_merging.py b/ishtar_common/model_merging.py index 188ec42dd..06f65378d 100644 --- a/ishtar_common/model_merging.py +++ b/ishtar_common/model_merging.py @@ -20,7 +20,7 @@ def get_models(): @transaction.atomic -def merge_model_objects(primary_object, alias_objects, keep_old=False): +def merge_model_objects(primary_object, alias_objects=None, keep_old=False): """ Use this function to merge model objects (i.e. Users, Organizations, etc.) and migrate all of the related fields from the alias objects to the @@ -32,6 +32,9 @@ def merge_model_objects(primary_object, alias_objects, keep_old=False): duplicate_user = User.objects.get(email='good_email+duplicate@example.com') merge_model_objects(primary_user, duplicate_user) """ + if not alias_objects: + alias_objects = [] + MERGE_FIELDS = ('merge_candidate', 'merge_exclusion') if not isinstance(alias_objects, list): @@ -55,14 +58,14 @@ def merge_model_objects(primary_object, alias_objects, keep_old=False): generic_fields = [] for model in get_models(): for field_name, field in filter(lambda x: isinstance( - x[1], GenericForeignKey), model.__dict__.iteritems()): + x[1], GenericForeignKey), model.__dict__.items()): generic_fields.append(field) blank_local_fields = set() for field in primary_object._meta.local_fields: value = getattr(primary_object, field.attname) # string fields with only spaces are empty fields - if isinstance(value, unicode) or isinstance(value, str): + if isinstance(value, str): value = value.strip() if value in [None, '']: blank_local_fields.add(field.attname) |