I am fairly new to django, and I thought user registration and profiling would be good to start with. Not so sure any more. So please forgive me for using this expert-forum as a shortcut, but reading quite a few blogs about how user profiling and registration should be accomplished, kind of leaves me with more questions than answers. I'd be glad for some rough line to follow. Here is what the application should do:
- Several types of users should be able to register by way of a registration form. This should include not only django's inbuilt username and password but also other specific information. I was successful in creating such a form and saving it into the database (User object, and self-defined UserProfile object). Each user should be able to edit his settings later.
User Profiles: q1) However, if I want more than 1 profile, is it still correct that these profile classes must be subclasses of class UserProfile because the settings attribute AUTH_PROFILE_MODULE can only have 1 value?
q2) Is it possible to define a base UserProfile with e.g. 10 fields, and flexibly allow for SubUserProfile_A to inherit 6 certain fields, while SubUserProfile_B inherits 6 other fields, i.e. the base class provides all features, and a subclass inherits a subset of it? Or better define a base UserProfile with 2 overall features, and have each subclass have its own specific features?
q3) Then I learnt that there is a predefined package for user-profiles by J. Bennett, django-profiles. I haven't used it since I read it is rarely documented. Is it deprecated, and features are all subsumed by django 1.3, or is it still recommended (last update 2008)? E.g. the user should be able to edit his settings, but this could also be programmed by use of generic.EditView(), available as of django 1.3. No? In other words: which advantages does user-profiles have compared to django 1.3?
User registration: q4) Then I learnt that there is a predefined package for registration by J. Bennett, django-registration. It comes in 2 flavors: a) with use of class-based generic views (brandnew), b) without class-based gen. views. It seems that I will need them anyway since they offer e.g. "email-confirmation" which is of course not yet in my app. So, if I need this module at all (do I?), which version should I use, the old (easier?) or the new one (accompanied by a warning of Bennett:) )? Or should I stay with django 1.3?
Answers are highly welcome. I really don't expect novels but maybe helpful hints. Thanks a lot in advance!