On Mar 11, 1:03 pm, Tom Evans <tevans...@googlemail.com> wrote: > On Thu, Mar 11, 2010 at 4:54 PM, russianbandit <russianban...@gmail.com> > wrote: > > I'm using UserProfile to add one field to my users. However, I know > > that I must explicitly create UserProfile for each new user that > > registers. So, I make a UserProfile upon registration. Is UserProfile > > still the best way to extend the user model? > > What about the admin user, or users that the admin creates? Since they > > don't go through the registration process, how do I ensure that their > > UserProfile gets created? > > Add this to your models.py > > from django.db.models.signals import post_save > from django.contrib.auth.models import User > > def _hook_save_user(instance, sender, **kwargs): > try: > instance.get_profile() > except UserProfile.DoesNotExist: > UserProfile.objects.get_or_create(user=instance) > > post_save.connect(_hook_save_user, sender=User) > On Mar 11, 1:03 pm, Tom Evans <tevans...@googlemail.com> wrote: > On Thu, Mar 11, 2010 at 4:54 PM, russianbandit <russianban...@gmail.com> > wrote: > > I'm using UserProfile to add one field to my users. However, I know > > that I must explicitly create UserProfile for each new user that > > registers. So, I make a UserProfile upon registration. Is UserProfile > > still the best way to extend the user model? > > What about the admin user, or users that the admin creates? Since they > > don't go through the registration process, how do I ensure that their > > UserProfile gets created? > > Add this to your models.py > > from django.db.models.signals import post_save > from django.contrib.auth.models import User > > def _hook_save_user(instance, sender, **kwargs): > try: > instance.get_profile() > except UserProfile.DoesNotExist: > UserProfile.objects.get_or_create(user=instance) > > post_save.connect(_hook_save_user, sender=User) >
Very interesting, Tom. I have inserted this code, substituting my profile model name (QotdUser) for UserProfile. It does create a row in QotdUser, but the row is empty of course. More importantly, if I create a user via the admin interface (http:// 127.0.0.1:8000/admin/auth/user/add/) there's no apparent way to edit any of the fields of my profile model. Or if I create the user some other way, would I be able to pass arguments to the User model to populate the profile? Finally, how do I access the profile, is it like my_user_profile = User.objects.get(username="jim").get_profile() ? Thanks for the help. -Jim -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@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.