Hi guys, The Django docs explain that "the method get_profile() does not create the profile, if it does not exist. You need to register a handler for the signal django.db.models.signals.post_save on the User model, and, in the handler, if created=True, create the associated user profile." (http://goo.gl/jNo91)
But there's no code sample. A few weeks ago (with some help from friendly people on #django) I came up with this snippet: # ~ snippet start ~ @receiver(post_save, sender=User) def create_profile(sender, instance, created, **kwargs): """Create a matching profile whenever a User is created.""" if created: profile, new = UserProfile.objects.get_or_create(user=instance) # ~ snippet end ~ (I use get_or_create as extra insurance against cases wherein a User is created, deleted, and then created anew.) Is there anything in this snippet that should be fixed or improved? If it's OK, do you think it makes sense to include it in the docs? I ask because getting user profiles to work is liable to be something new Django developers want to do, but signals are something of an intermediate/advanced topic. Thanks, Ori PS I wrote this up on my blog with a slightly lengthier explanation, in case anyone finds it useful: http://floru.it/2011/using-signals-to-create-user-profiles-in-django-1-3/ -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.