diff --git a/modoboa/extensions/admin/forms/domain.py b/modoboa/extensions/admin/forms/domain.py index 45bf1149e..373e1775d 100644 --- a/modoboa/extensions/admin/forms/domain.py +++ b/modoboa/extensions/admin/forms/domain.py @@ -96,8 +96,14 @@ class DomainFormGeneral(forms.ModelForm, DynamicForm): if cleaned_data[k] == "": del cleaned_data[k] continue + if cleaned_data[k] == name: + self._errors[k] = self.error_class( + [_("A %s with this name already exists") % _("domain")] + ) + del cleaned_data[k] + continue label = check_if_domain_exists( - cleaned_data[k], [(Domain, _('domain'))]) + cleaned_data[k], [(Domain, _("domain"))]) if label is not None: self._errors[k] = self.error_class( [_("A %s with this name already exists" % unicode(label))] diff --git a/modoboa/extensions/admin/lib.py b/modoboa/extensions/admin/lib.py index decb4a804..9ba1e9585 100644 --- a/modoboa/extensions/admin/lib.py +++ b/modoboa/extensions/admin/lib.py @@ -109,10 +109,6 @@ def check_if_domain_exists(name, extra_checks=None): if extra_checks is not None: dtypes = extra_checks + dtypes for dtype, label in dtypes: - try: - dtype.objects.get(name=name) - except dtype.DoesNotExist: - pass - else: + if dtype.objects.filter(name=name).exists(): return label return None