class Parent(models.Model): child_class_names = ( 'Child1', 'Child2', 'Child3', ) def child_object(self): for child_class_name in self.child_class_names: try: return self.__getattribute__(child_class_name.lower()) except eval(child_class_name).DoesNotExist: pass return self class Child1(Parent): pass class Child2(Parent): pass class Child3(Parent): pass