diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2011-09-19 10:33:51 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2011-09-19 10:33:51 +0800 |
commit | 4bc2c34df5e5eb3e7153286f59aa8bdaf0c23dc0 (patch) | |
tree | 971498466574214e4a3a90a451278e4386e51768 /apps/patchwork/models.py | |
parent | 75d8cf966034e673afe0077ba393d8b2eb3e9b93 (diff) | |
download | patchwork-4bc2c34df5e5eb3e7153286f59aa8bdaf0c23dc0.tar.bz2 patchwork-4bc2c34df5e5eb3e7153286f59aa8bdaf0c23dc0.tar.xz |
models: Update Person & UserProfile object whenever User is saved
Currently, UserProfiles are only saved on creation of the User object,
before the first_name and last_name attributes are set. This means that
we fallback to using the User.username value as the new Person.name.
This change modifies User's post-save signal to always update the Person
object, both on creation and updates. This means we get the proper name
appearing on Person instances.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'apps/patchwork/models.py')
-rw-r--r-- | apps/patchwork/models.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/apps/patchwork/models.py b/apps/patchwork/models.py index 22062c2..bb8d8e7 100644 --- a/apps/patchwork/models.py +++ b/apps/patchwork/models.py @@ -136,13 +136,14 @@ class UserProfile(models.Model): def __unicode__(self): return self.name() -def _user_created_callback(sender, created, instance, **kwargs): - if not created: - return - profile = UserProfile(user = instance) +def _user_saved_callback(sender, created, instance, **kwargs): + try: + profile = instance.get_profile() + except UserProfile.DoesNotExist: + profile = UserProfile(user = instance) profile.save() -models.signals.post_save.connect(_user_created_callback, sender = User) +models.signals.post_save.connect(_user_saved_callback, sender = User) class State(models.Model): name = models.CharField(max_length = 100) |