Here is my proposal for replacing auth.User
in a sane, backwards-compatible, non-magical fashion.
- Split off the current functionality of
auth.User
into reusable components. Proof of concept that this can be done transparently is available: https://github.com/ogier/django/blob/auth-mixins/django/contrib/auth/mixins.py . The changes there, with independent password, profile, groups/permissions and identity support being shipped as abstract models, are totally transparent to Django's test suite. - Ask users to reimplement a User model if they want to change anything. This, while arguably invasive, already has precedent in nearly every other batteries-included framework out there (See Ruby on Rails, ASP.NET MVC, Play, etc.). In addition, this has the advantage of making
AUTH_PROFILE
a dinosaur. Why implement a one-to-one model accessible indirectly via method on auth.User when you can just stick your fields where they belong. - Break any hard d