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.

Reply via email to