This basically started as a ticket suggesting adding some way to create 
a default profile for users which don't have one, moving the need to 
catch DoesNotExist-exceptions out of the applications using get_profile().
-> http://code.djangoproject.com/ticket/7584

julien did suggest some alternatives, which all bring some drawbacks 
with them and finally closed the ticket, as #7592 got closed, too. After 
some discussion he suggested bringing the topic up here.

My current idea is to add the possibility to provide a 
get_for_user()-method in the profile manager, this would fix #7584, 
#7592 and even #7400...and would possible add room for more ideas, hence 
make the whole get_profile()-stuff more flexible. Patch: 
http://code.djangoproject.com/attachment/ticket/7584/django-profile-manager.patch

So, about the alternatives:

1. Use signals (#7584, comment:1)
Might work, but does not support on demand creation of profiles for 
legacy-users. There may be more use-cases where post_save is not enough. 
Still need to catch the exception, as you can't guarantee the existence 
of a profile.

2. Importing AUTH_PROFILE_MODULE yourself (#7592)
Not really possible, think about templates for example. Even if only 
needed in views this duplicates code.

3. Own profile-module with appropriate manager (#7584, comment:3)
Like importing AUTH_PROFILE_MODULE yourself, but with cleaner code. 
Still no easy support in templates. Does not work if application needs 
to be reusable (on some other website with different profiles).

4. Overwrite get() on profile-manager (#7584, comment:4)
Possible, but seems rather hackish. Additionally nothing someone new to 
django might do or want to do.

So is there any reason not to support creating profiles on demand? The 
patch is only three new lines and should not cause any trouble I think. 
Of course docs are missing so far.

Greetings, David Danier

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to