diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-04-20 12:00:00 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-04-20 12:00:00 +0200 |
commit | f8b7ff1482285ac4059928b759f4d4ec31e48337 (patch) | |
tree | b18ab9d700629f7e1816bf0fdb115e9c61f0b3f2 | |
parent | f00b5c8b2d62664224c7f96e1642fd64e3924a84 (diff) | |
download | Ishtar-f8b7ff1482285ac4059928b759f4d4ec31e48337.tar.bz2 Ishtar-f8b7ff1482285ac4059928b759f4d4ec31e48337.zip |
Django 1.8: fix get_models deprecation
-rw-r--r-- | ishtar_common/model_merging.py | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/ishtar_common/model_merging.py b/ishtar_common/model_merging.py index b2ed68358..be2867cb6 100644 --- a/ishtar_common/model_merging.py +++ b/ishtar_common/model_merging.py @@ -1,8 +1,19 @@ # from https://djangosnippets.org/snippets/2283/ +from django.apps import apps from django.db import transaction -from django.db.models import get_models, Model +from django.db.models import Model from django.contrib.contenttypes.fields import GenericForeignKey +from django.core.exceptions import ObjectDoesNotExist + + +def get_models(): + _apps = apps.app_configs.items() + models = [] + for app_name, app_config in _apps: + models += [apps.get_model(app_name, m) + for m in apps.get_app_config(app_name).models] + return models @transaction.atomic @@ -63,7 +74,10 @@ def merge_model_objects(primary_object, alias_objects=[], keep_old=False): alias_varname = related_object.get_accessor_name() # The variable name on the related model. obj_varname = related_object.field.name - related_objects = getattr(alias_object, alias_varname) + try: + related_objects = getattr(alias_object, alias_varname) + except ObjectDoesNotExist: + continue for obj in related_objects.all(): setattr(obj, obj_varname, primary_object) obj.save() |