Assuming a simple set of inherited Model classes, like this:

```
class BaseObject(models.Model): 
    some_field = models.SomeField(...)

class AwesomeObject(BaseObject): 
    awesome_field = models.AwesomeField(...)

class ExcellentObject(BaseObject): 
    excellent_field = models.ExcellentField(...)

```

and a query that looks like this:

```
found_objects = BaseObject.objects.filter(some_field='bogus')

```

What's the best way to take each `found` object and turn it back into it's derived class? The code I'm using now is like this:

```
for found in found_objects:
    if hasattr(found, 'awesomeobject'): 
        ProcessAwesome(found.awesomeobject)
    elif hasattr(found, 'excellentobject'): 
        ProcessExcellent(found.excellentobject): 

```

But, it feels like this is an abuse of "hasattr". Is there a better way to do this without creating an explicit "type" field on the base class?