Eliminar objeto relacionado a través de OneToOneField

¿Hay alguna forma inteligente de cómo realizar la eliminación en esta situación?

class Bus(models.Model):  
    wheel = OneToOneField(Wheel)  

class Bike(models.Model):  
    wheel = OneToOneField(Wheel)  
    pedal = OneToOneField(Pedal)

class Car(models.Model):  
    wheel = OneToOneField(Wheel)  

class Wheel(models.Model):  
    somfields

car = Car()    
wheel = Wheel()  
wheel.save()
car.wheel = wheel
car.save()  
car.delete() # I want to delete also wheel (and also all stuff pointing via OneToOneField eg pedal)

¿Debo anular los métodos de eliminación de los modelos de automóvil, bicicleta o autobús o hay alguna forma mejor? Otra opción es crear campos de coches, bicicletas, autobuses en el modelo de ruedas, pero no tiene mucho sentido.

Respuestas a la pregunta(2)

Su respuesta a la pregunta