I think we're in agreement. The inelegance was just that all the builtin Field classes's get_internal_type() just returned self.__class__.__name__ and expected the database backends to know map each of those class names.
This immediately breaks if you extend a field and don't implement that method. Preferably, all the Field classes would implement the mapping right there. Each database shouldn't need to know how to map a USState field for example, just strings, dates and integers, etc. Keep up the good work...