Django models: different methods on each instance?
What you want is inheritance as a proxy model.

In your subclasses, use the following Meta option:

class SlimyMonster(Monster):
    class Meta:
        proxy = True

    def some_method_to_override(self):
        ...


This way the subclassing has no effect on the database side, only on the Python side.