I very much share Tai's concerns about the swappable user model introducing incompatibilities. Imagine two apps, each of which requires an "age" attribute on the user model. But suppose one of those apps expects age to be the number of years since that user's birth and one of those apps expects the age to be the number of years since the user registered for the website. The user model must provide the same attribute to both apps, but it is supposed to have a different value for each app. A developer will be unable to use these two apps together without patching one of them.
A bit of a contrived example, maybe, but I can imagine this same-name-different-purpose issue coming up over and over again, making otherwise pluggable apps incompatible with each other. I think we should go with a pared down user model and allow each app to manage whatever data it needs on each user through profiles and signals. Developers will end up with some data duplication, but I think that is preferable to confusion about the source and purpose of data. Profiles are essentially a way for each app to namespace its own data and I think that's a good thing. Harris > -- You received this message because you are subscribed to the Google Groups "Django developers" group. To view this discussion on the web visit https://groups.google.com/d/msg/django-developers/-/p4jhylEp3x8J. To post to this group, send email to django-developers@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.