diff --git a/avatar/forms.py b/avatar/forms.py index 365bc9e..50cd608 100644 --- a/avatar/forms.py +++ b/avatar/forms.py @@ -28,7 +28,8 @@ class UploadAvatarForm(forms.Form): "Your file is too big (%s), the maximum allowed size is %s" % (filesizeformat(data.size), filesizeformat(AVATAR_MAX_SIZE))) count = Avatar.objects.filter(user=self.user).count() - if count >= AVATAR_MAX_AVATARS_PER_USER: + if AVATAR_MAX_AVATARS_PER_USER > 1 and \ + count >= AVATAR_MAX_AVATARS_PER_USER: raise forms.ValidationError( "You already have %d avatars, and the maximum allowed is %d." % (count, AVATAR_MAX_AVATARS_PER_USER)) diff --git a/avatar/models.py b/avatar/models.py index acd5d1c..c2b5fdc 100644 --- a/avatar/models.py +++ b/avatar/models.py @@ -33,10 +33,13 @@ class Avatar(models.Model): return _(u'Avatar for %s') % self.user def save(self, force_insert=False, force_update=False): - if self.primary: - avatars = Avatar.objects.filter(user=self.user, primary=True)\ - .exclude(id=self.id) - avatars.update(primary=False) + avatars = Avatar.objects.filter(user=self.user).exclude(id=self.id) + if AVATAR_MAX_AVATARS_PER_USER > 1: + if instance.primary: + avatars = avatars.filter(primary=True) + avatars.update(primary=False) + else: + avatars.delete() super(Avatar, self).save(force_insert, force_update) def thumbnail_exists(self, size):