diff --git a/src/c3nav/editor/models/changeset.py b/src/c3nav/editor/models/changeset.py index c18fa7e6..9383641e 100644 --- a/src/c3nav/editor/models/changeset.py +++ b/src/c3nav/editor/models/changeset.py @@ -336,7 +336,7 @@ class ChangeSet(models.Model): objects.setdefault(obj.__class__, {})[pk] = obj for pk, obj in objects.get(LocationRedirect, {}).items(): - target = obj.target.get_child() + target = obj.target.get_child(obj.target) objects.setdefault(LocationSlug, {})[target.pk] = target objects.setdefault(target.__class__, {})[target.pk] = target diff --git a/src/c3nav/mapdata/models/locations.py b/src/c3nav/mapdata/models/locations.py index 6428733d..81a699f7 100644 --- a/src/c3nav/mapdata/models/locations.py +++ b/src/c3nav/mapdata/models/locations.py @@ -46,10 +46,10 @@ class LocationSlug(SerializableMixin, models.Model): objects = LocationSlugManager() - def get_child(self): + def get_child(self, instance=None): for model in get_submodels(Location)+[LocationRedirect]: with suppress(AttributeError): - return getattr(self, model._meta.default_related_name) + return getattr(instance or self, model._meta.default_related_name) return None def get_slug(self):