The confusion is that we defined this display_name method -- which doesn't seem to be the regular way of doing things. (My original question's intention, answered correctly by @pjmorse  )
So this should mostly work then?  One possible problem is that I believe that some models explicitly set display_name for instances, and therefore they might not be looked up correctly.

    class.demodulize.underscore.humanize.titlecase

But then we will probably need a way to l