for dep in self.dependencies:
peer_name = dep[0].lower() + dep[1:] # django names are camelCased with the first letter lower
peer_object = getattr(obj, peer_name)
- if (peer_object.pk==failed.pk):
- raise FailedDependency
+ if (peer_object and peer_object.pk==failed.pk and type(peer_object)==type(failed)):
+ raise FailedDependency("Failed dependency for %s:%s peer %s:%s failed %s:%s" % (obj.__class__.__name__, str(obj.pk\\r
+), peer_object.__class__.__name__, str(peer_object.pk), failed.__class__.__name__, str(failed.pk)))
def call(self, failed=[], deletion=False):
pending = self.fetch_pending(deletion)