Вы должны явно удалить все общие ссылки внешнего ключа на исходный объект, прежде чем удалять исходный объект. Например
Image.objects.filter( object_id=object_to_be_deleted.id,content_type = ContentType.objects.get_for_model(bject_to_be_deleted.get_profile() )).delete()
object_to_be_deleted.delete()
Каскадное удаление прекрасно, когда оно работает, например, для отношений один-к-одному в моделях, но, похоже, оно не работает для общих отношений внешнего ключа.